请问老师几个问题
来源:7-1 异步迭代:for await of
hy_wang
2020-08-17
老师我想请问一下,为什么我打印Symbol.asyncIterator是undefined
以及请问下老师我其实代码中并没有实现它的asyncIterator这个方法,为什么还是支持for await of?
let promise1 = new Promise((res) => {
setTimeout(() => {
res(1)
}, 1000);
})
let promise2 = new Promise((res) => {
setTimeout(() => {
res(2)
}, 2000);
})
const asyncList = [ promise1,promise2 ]
console.log(asyncList[Symbol.asyncIterator],'iterator')
for(let i of asyncList) {
console.log(i,'iiii')
}
(async function () {
for await(let i of asyncList) {
console.log(i,'async i')
console.log("ater async i")
}
})()
打印结果
为什么iterator是undefined?
以及我没有实现[Symbol.asynciterator]为什么数组还是可以实现异步迭代,请问老师哪些对象内置了实现以及什么情况下需要我们自己实现?
写回答
1回答
-
1、因为并没有实现Symbol.asyncIterator,所以是undefined
2、红色框中的代码:
这个例子在7-1这节课演示过,这时异步操作还没有执行完,所以输出的promise对象状态是pending
3、可以参考下mdn文档: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for-await...of
012020-08-18
相似问题