let obj = { count: 0, items: { names: ['小明', '笑话', '小草'], age: [19,20,30], haha: ['小小', '大大'], }, Gen(time) { return new Promise((resolve, reject) => { setTimeout(function() { 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: ''}) } } } }, [Symbol.iterator] () { let arr = this.items; let keys = Reflect.ownKeys(arr) let values = []; return { next() { if (!values.length) { if (keys.length) { values = arr[keys[0]] keys.shift() } else { return { done: true, value: '' } } } return { value: values.shift(), done: false } } } } } for (let i of obj) { console.log(i) } async function test() { for await (let i of obj) { console.log(i) } } test()
版权属于:
emer
文章声明:
本文版权内容属于《快乐小窝》转载请标明出处
评论一下?