- function Gen(time) {
-   return new Promise((resolve, reject) => {
-     setTimeout(() => {
-       resolve(time);
-     }, time);
-   });
- }
- // async function test() {
- //   let arr = [Gen(2000), Gen(100), Gen(3000)];
- //   for (let item of arr) {
- //     console.log(Date.now(), await item.then(console.log));
- //   }
- // }
- // test();
- // async function test() {
- //   let arr = [Gen(2000), Gen(100), Gen(3000)];
- //   for await (let item of arr) {
- //     console.log(Date.now(), item);
- //   }
- // }
- // test();
- const obj = {
-   count: 0,
-   Gen(time) {
-     return new Promise((resolve, reject) => {
-       setTimeout(() => {
-         resolve({ done: false, value: time });
-       }, time);
-     });
-   },
-   [Symbol.asyncIterator]() {
-     let self = this;
-     return {
-       next() {
-         self.count++;
-         if (self.count < 4) {
-           return self.Gen(Math.random() * 1000);
-         } else {
-           return Promise.resolve({
-             done: true,
-             value: ""
-           });
-         }
-       }
-     };
-   }
- };
- async function test() {
-   for await (let item of obj) {
-     console.log(Date.now(), item);
-   }
- }
- test();