मैं बेहतर ढंग से समझने की कोशिश कर रहा हूं कि जावास्क्रिप्ट में async function
तकनीकी रूप से क्या है, भले ही मैं मूल रूप से उनको कैसे उपयोग कर सकूं।ES7 async फ़ंक्शन और वादे के बीच तकनीकी अंतर?
async के लिए कई परिचय/belive एक async
समारोह मूल रूप से सिर्फ एक वादा है, लेकिन यह स्पष्ट रूप से मामला (कम से कम Babel6-transpiled code साथ नहीं) नहीं है कि बनाने का इंतजार:
async function asyncFunc() {
// nop
}
var fooPromise = new Promise(r => setTimeout(r, 1));
console.clear();
console.log("typeof asyncFunc is", typeof asyncFunc); // function
console.log("typeof asyncFunc.next is", typeof asyncFunc.next); // undefined
console.log("typeof asyncFunc.then is", typeof asyncFunc.then); // undefined
console.log("typeof fooPromise is", typeof fooPromise); // object
console.log("typeof fooPromise.next is", typeof fooPromise.next); // undefined
console.log("typeof fooPromise.then is", typeof fooPromise.then); // function
फिर भी, यह निश्चित रूप से संभव है await
पर एक वादा, जैसे await fooPromise()
।
एक
async funtion
अपने आप की बात है औरawait
बस वादे के साथ संगत है?और, क्या रनटाइम पर एक सरल
function
औरasync function
के बीच अंतर करने का कोई तरीका है (एक बेबेल-संगत तरीके से)?
धन्यवाद, बहुत समझ में आता है। इसलिए, अनिवार्य रूप से, 'asyncFunc' एक वादा नहीं है, लेकिन' asyncFunc() 'है - या अन्य शब्दों के साथ: 'asofcFunc टाइप करें)। फिर ==" फ़ंक्शन "' –
यह बिल्कुल सही है। –