We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 33ae639 commit b2a89acCopy full SHA for b2a89ac
JavaScript/a-immediate.js
@@ -0,0 +1,31 @@
1
+'use strict';
2
+
3
+class AsyncArray extends Array {
4
+ [Symbol.asyncIterator]() {
5
+ let i = 0;
6
+ return {
7
+ next: () => new Promise(resolve => {
8
+ setImmediate(() => resolve({
9
+ value: this[i],
10
+ done: i++ === this.length
11
+ }));
12
+ })
13
+ };
14
+ }
15
+}
16
17
+// Usage
18
19
+let k = 0;
20
21
+const timer = setInterval(() => k++, 10);
22
23
+(async () => {
24
+ const numbers = new AsyncArray(10000).fill(1);
25
26
+ for await (const number of numbers) {
27
+ if (number) i++;
28
29
+ clearInterval(timer);
30
+ console.dir({ i, k });
31
+})();
0 commit comments