当 async/await 遇上 forEach

2018-03-15  本文已影响17人  汨罗在北方

今天写js,好好的一段async函数里的代码加了await就直接弹错Unexpected identifier。

仔细研究了下,发现竟然是for - each搞出的问题。

使用规范中,await必须在async函数的上下文中。通过个人理解的这句话就是await只能在async函数中使用。

自己的代码中,虽然最外层start函数是通过async声明的,在for - each函数体内部的箭头函数中使用了await,而该箭头函数是一个普通函数,所以await的上文是一个普通函数,最终导致报错。

所以第一反应是直接在箭头函数位置加async就好。但是想了下不对,这样for循环里面就变成异步了。最后为了解决吧for - each改成了for of结构。避免了新声明一个函数空间。

参考:
https://segmentfault.com/a/1190000011156836
https://objcer.com/2017/10/12/async-await-with-forEach/

上一篇下一篇

猜你喜欢

热点阅读