मैं सिर्फ इस शानदार लेख « जनरेटर » को पढ़ रहा था और यह इस फ़ंक्शन को स्पष्ट रूप से उजागर करता है, जो जनरेटर कार्यों को संभालने के लिए एक सहायक कार्य है:
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);
}
}
}
जो मैं परिकल्पना बनाना कम या ज्यादा तरीका है asyncखोजशब्द के साथ लागू किया गया है async/ await। तो सवाल यह है कि अगर ऐसा है, तो क्या बिल्ली awaitऔर कीवर्ड में अंतर है yield? क्या awaitहमेशा किसी वादे में कुछ बदल जाता है, जबकि yieldऐसी कोई गारंटी नहीं है? यह मेरा सबसे अच्छा अनुमान है!
आप यह भी देख सकते हैं कि इस लेख में जनरेटर के साथ कैसे async/ awaitके समान है yieldजहां वह 'स्पॉन' फ़ंक्शन ES7 async फ़ंक्शन का वर्णन करता है ।