1
ジェネレータは、次の結果に進む前に非同期prm約束が完了するのを待たないのはなぜですか?ジェネレータが約束を評価しない
function *verify() {
try {
let prm = new Promise((resolve,reject) => {
resolve("abc");
})
let k = yield prm
console.log(k)
yield 1;
console.log("1")
yield 2;
console.log("2")
yield 3;
console.log("3")
} catch (err) {
console.log("error")
}
}
var gen = verify()
while (!gen.next().done) {}
戻り
undefined
1
2
3
ジェネレータは約束を待っていません。まだサポートされていない非同期ジェネレータについて考えていますが、あなたはBabelと一緒に使うことができます。 – elclanrs
プロビジョニングは非同期と見なされるため、prmは設定されますが、* anytime *は解決されますが、ブロックされません。 – Booster2ooo