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.分享戒骄戒躁