Js async await 的疑问
async {
await a()
await b()
c()
d()
}
这四个方法的执行顺序是怎样的呢?
是 先 a() 再 b() 后 c(),d() ?
还是 先 c(),d() 再 a() 后 b() ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
async {
await a()
await b()
c()
d()
}
这四个方法的执行顺序是怎样的呢?
是 先 a() 再 b() 后 c(),d() ?
还是 先 c(),d() 再 a() 后 b() ?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
如果x是Promise, 表達式
await x
在 x fulfill 時才 "返回".等價於
在console执行上述代码,最终结果是'a','b','c','d',看来是我一开始的理解不太正确,async/await自己将同步代码和异步代码放在一起处理了,刚刚翻译了一篇关于async/await的文章,大家可以阅读了解下。
有await的地方如果是异步则等异步执行完执行下一步 同步则按同步方式执行 其他不变啊 所以abcd啊 只是d不等c异步回调 如果c是异步的话 ?
答案:abcd,但会跳来跳去。先执行
a()
,等到a
执行完就跳出async
,执行后续程序,执行完,如果之前a
返回了promise
,就要等它resolve
,如果没有promise
就直接执行async
后续的,也就是b
,b()
过程同a()
,之后cd是同步的,按顺序执行。原因:
async
函数是为了实现异步的,也就是让出线程让其他代码运行,await
就是一个要处理器让出线程的标记,await
后面的函数会先执行一遍,然后跳出async
执行其他(要看await后面的是不是异步promise
),然后再执行async
例子:可以切换promise看看
注意,第一个
await
是一定会跳出async
的,但后面的await
如果没有返回promise
,就会被内部转成promise
,并立即resolve(retrunValue)
,因而不会跳出async
。(这段可能不太准确)