Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
271 views
in Technique[技术] by (71.8m points)

为什么循环中使用同步总是没有效果呢?

image.png
总是先打印9999
后打印----
我想执行完里面的接口调用然后执行打印怎么办呢?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

原因在于二者不是处在同一个任务队列 。9999处于主线程的当前同步代码块,await解析的Promise对象处于微任务队列。基于主线程执行完毕,才会接着由事件循环器执行当前批次微任务的事实。
要么将9999打印任务与await 任务置于同一批队列,比如于置await任务后,或置于await任务体内。要么干脆,都处于同步代码块,比如去掉 await, 但这样你需要外部手动解析Promise对象。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...