【问题标题】:ES6 - Yield and Return at the Same TimeES6 - 同时收益和回报
【发布时间】:2017-12-09 01:30:25
【问题描述】:

我有这个,

function*(a){
 if (a) {
    yield API.callRoute();
    return;
  }
  // other stuff that is blocked by return
}

我想要这个:

function*(a){
  if (a) {
    return yield API.callRoute(); // one fewer line of code
  }
  //...
}

可行吗?为什么?为什么不呢?

【问题讨论】:

  • 好吧,你试过你的代码了吗?这实际上应该工作......
  • 我对你的代码有点困惑。您似乎没有使用您创建的生成器。对吗?
  • @MoeSattler 是的,这是应用程序的一小部分

标签: javascript asynchronous yield redux-saga


【解决方案1】:

是的,这是可行的,但是您的第二个 sn-p returns 是 yield 表达式的结果。如果您不想这样做,但要使其与您的第一个 sn-p 完全相同,请使用

return void yield API.callRoute();

尽管当差异很大时,可能不值得缩短这一行。

【讨论】:

    猜你喜欢
    • 2011-05-27
    • 1970-01-01
    • 2020-02-18
    • 2012-01-14
    • 1970-01-01
    • 2018-01-23
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多