" Jeneratörler" adlı bu harika makaleyi okuyordum ve bu, jeneratör işlevlerini işlemek için yardımcı bir işlev olan bu işlevi açıkça vurgulamaktadır:
function async(makeGenerator){
return function () {
var generator = makeGenerator.apply(this, arguments);
function handle(result){
// result => { done: [Boolean], value: [Object] }
if (result.done) return Promise.resolve(result.value);
return Promise.resolve(result.value).then(function (res){
return handle(generator.next(res));
}, function (err){
return handle(generator.throw(err));
});
}
try {
return handle(generator.next());
} catch (ex) {
return Promise.reject(ex);
}
}
}
Varsaydığım, asyncanahtar kelimenin aşağı yukarı async/ ile uygulanma şeklidir await. Öyleyse soru şu, eğer durum buysa, o zaman awaitanahtar kelime ile yieldanahtar kelime arasındaki fark nedir? Her awaitzaman bir şeyi söze dönüştürürken yieldböyle bir garanti vermez mi? Bu benim en iyi tahminim!
Ayrıca , ES7 asenkron işlevlerinin 'spawn' işlevini açıkladığı bu makalede, jeneratörlere nasıl async/ awaitbenzer olduğunu da görebilirsiniz .yield