在generator函数域内,有没有办法在次一级的匿名函数中使用yield?如[1].map(_ => yield)

async function a(){
  [1].map(n => await seconds(n))
}

最初是写这样一个async函数的时候,报语法错误,猜测是map的匿名函数也需要为async函数。

后来发现直接用generator写也是不能工作的,会报错yield未定义:

function *b(){
  ;[1,2,3].map(_ => yield)
}

我比较不能理解为什么匿名函数中没法yield,这个在ruby中很常用,就算在另一个方法里也是可以Fiber.yield的。。

如果不能这样的话,generator感觉没什么实用意义了,还是得自己串promise

阅读 3.3k
1 个回答

写个自动化执行函数就行了,要参考的话,阮一峰的文章里好多这种例子。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题