请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

for await of

老师,这节我有点没听懂,for await of 里面可以异步操作,可以等到一个异步操作执行完再执行下一个异步操作,我这里在异步setTimeout中打印对应的结果,打印的顺序,为什么不是 3 2 1呢,不应该是Three函数执行完再执行two在执行one函数吗?如何实现打印的结果是 3 2 1
图片描述

正在回答 回答被采纳积分+3

2回答

提问者 酷酷的Nian 2022-04-10 09:20:26

老师,我实际想问的是:比如有三个接口,想要先执行第三个接口,接口成功后再执行第一个个,然后第二个,结合这个for await of,发现没弄明白…..

0 回复 有任何疑惑可以回复我~
谢成 2022-04-10 09:02:55

function one(){

return new Promise(resolve => {

setTimeout(()=>{

resolve(1)

}, 1000)

})

}

function two(){

return new Promise(resolve => {

setTimeout(()=>{

resolve(2)

}, 2000)

})

}

function three(){

return new Promise(resolve => {

setTimeout(()=>{

resolve(3)

}, 3000)

})

}


const arr = [three(), two(), one()]


async function test(){

for await(let item of arr){

console.log(item);

}

}

test()

0 回复 有任何疑惑可以回复我~
  • 提问者 酷酷的Nian #1
    老师,我实际想问的是:比如有三个接口,想要先执行第三个接口,接口成功后再执行第一个个,然后第二个,结合这个for await of,发现没弄明白…..
    回复 有任何疑惑可以回复我~ 2022-04-10 09:22:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信