नीचे दिए गए कोड के नमूनों को देखते हुए, क्या व्यवहार में कोई अंतर है, और, यदि हां, तो वे अंतर क्या हैं?
return await promise
async function delay1Second() {
return (await delay(1000));
}
return promise
async function delay1Second() {
return delay(1000);
}
जैसा कि मैं इसे समझता हूं, पहले async फ़ंक्शन में त्रुटि-हैंडलिंग होगी, और त्रुटियाँ async फ़ंक्शन के वादे से बाहर हो जाएंगी। हालांकि, दूसरे को एक कम टिक की आवश्यकता होगी। क्या ये सही है?
संदर्भ के लिए एक वादा वापस करने के लिए यह स्निपेट सिर्फ एक सामान्य कार्य है।
function delay(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
asyncअपने दूसरे ( return promise) नमूने से हटा देना चाहते थे ।
promise.then(() => nestedPromise)समतल होगा और "का पालन करें" nestedPromise। दिलचस्प है कि यह C # में नेस्टेड कार्यों से अलग कैसे है, जहां हमें Unwrapयह करना होगा। एक साइड नोट पर, यह प्रतीत होता है कि await somePromise कॉल Promise.resolve(somePromise).then, बजाय somePromise.thenदिलचस्प दिलचस्प अंतर के साथ।