2020/8/12学习总结

190 阅读1分钟

2020/8/12学习总结

1.async 函数 包装了 generator函数 + 一个自执行函数spawn

function spawn(genF) {

return new Promise(function (resolve, reject) {

var gen = genF();
function step(nextF) {
  try {
    var next = nextF();
  } catch (e) {
    return reject(e); // 一般yield后面有错误 直接在这里被捕获
  }
  if (next.done) {
    console.log('resolve', next.value)
    return resolve(next.value);
  }
  Promise.resolve(next.value).then(function (v) {
    step(function () { return gen.next(v); }); // 递归调用自身
  }).catch(err => {
    console.log('错误!')
  }); // 放在catch来捕获错误
}
step(function () { return gen.next(undefined); });

}); }

2.分享戒骄戒躁