javascript - 如何在 fetch 调用返回的 Promise 中使用生成器函数作为回调?

标签 javascript ecmascript-6 es6-promise redux-saga

return fetch(url, {
    credentials: 'same-origin',
    ...options
  })
  .then(response => response.json())
  .then(function*(response) {
    console.log("httpStatusCode", response.httpStatusCode)
  })

以上可能吗? 当回调函数是生成器时,我没有得到控制台输出,这意味着控件没有传递给回调函数(生成器)。 我想这样做的真正原因是我必须使用上面回调中 redux-saga 的“call”辅助函数来调用另一个获取请求,该函数只能从生成器函数中调用。

最佳答案

我想你可以做到。当生成器函数运行时,它将生成一个生成器对象,并将其传递到可以启动生成器的下一个 then 阶段。让我们看看...

var pr = Promise.resolve(42);
pr.then(function*(n){ yield n; yield n / 2; yield 37})
  .then(it => {console.log(it.next().value);
               console.log(it.next().value);
               console.log(it.next().value);
              });

关于javascript - 如何在 fetch 调用返回的 Promise 中使用生成器函数作为回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38760406/

相关文章:

javascript - 为什么 fadeIn()、fadeOut()、show(400)、hide(400) 动画在我的情况下不起作用?

javascript - firebase:获取日期大于现在的记录

javascript - 如何使用一组 ID 仅查找集合中的最新文档

javascript - 如何在循环中使用 Promises 并确保在继续之前都已完成?

javascript - JavaScript promises中的执行顺序是什么?

javascript - JS Promise 内部是如何工作的?

javascript - JS 数组解构 - 它是如何给出这个输出的?

javascript - 如何将数组转换为对象,其名称是数组中的第一个值,属性是子数组的数组?

javascript - ES6回调函数

javascript - 语法产生规则与ECMAScript中的解析如何相关