Js foreach与async/await的关系

  写一个nodejs的脚本,F5一跑就出错,重点是也不提示出错原因和地址,也可能是我不会看,总之我的脚本是被require,然后是在内部模块vm.js里:

 function createScript(code, options) {
  return new Script(code, options);
 }

  这段去new Script的时候把我的整个脚本加载进去,然后提示:

  发生异常: SyntaxError
  SyntaxError: Unexpected identifier
  at createScript (vm.js:74:10)
  at Object.runInThisContext (vm.js:116:10)
  at Module._compile (module.js:537:28)
  at Object.Module._extensions..js (module.js:584:10)
  at Module.load (module.js:507:32)
  at tryModuleLoad (module.js:470:12)
  at Function.Module._load (module.js:462:3)
  at Module.require (module.js:517:17)
  at require (internal/module.js:11:18)

  由于没有提示原因,就只能逐段注释,最后定位到使用await的一句,但是函数已经是async了,看了半天只能把怀疑对象放到在它上一句的foreach上,上网一查果然有蹊跷:
  async/await 语法糖本身就是为了避免回调函数这种“不直观”的逻辑,将异步回调转成同步顺序执行,从而使得代码符合直观的理解。而用 forEach/map/reduce 代替for循环,则正是利用回调函数的语法,牺牲代码的直观性,提升代码的简洁性。
  另一个角度await后面要接的是异步操作,而foreach是同步操作并发操作,也就是说无论await是在foreach里面还是await后面接foreach都不行

参考连接:
1:https://www.zhihu.com/question/53466898/answer/259826558
2:http://www.ruanyifeng.com/blog/2015/05/async.html –【六、注意点】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值