मैं दो async फ़ंक्शंस को एक साथ करने का प्रयास कर रहा था, क्योंकि पहले में एक सशर्त रिटर्न पैरामीटर था जो दूसरे को चलाने के लिए या मॉड्यूल से बाहर निकलने का कारण था। हालाँकि, मुझे अजीब व्यवहार मिला है जो मैं ऐनक में नहीं ढूँढ सकता।
async function isInLobby() {
//promise.all([chained methods here])
let exit = false;
if (someCondition) exit = true;
}
यह मेरे कोड का एक कमिटेड स्निपेट है (आप यहां पूरा स्कोप देख सकते हैं ), जो कि पहले से ही एक लॉबी में अगर कोई खिलाड़ी है तो जांच करता है, लेकिन यह अप्रासंगिक है।
अगला हमारे पास यह async फ़ंक्शन है।
async function countPlayer() {
const keyLength = await scardAsync(game);
return keyLength;
}
इस फ़ंक्शन को यदि चलाने की आवश्यकता नहीं है exit === true
।
मैंने करने की कोशिश की
const inLobby = await isInLobby();
मुझे आशा थी कि मुझे परिणामों की प्रतीक्षा होगी, इसलिए मैं inLobby
सशर्त रूप से चलाने के लिए उपयोग कर सकता हूं countPlayer
, हालांकि मुझे कोई विशिष्ट विवरण नहीं मिला।
क्यों नहीं कर सकते हैं आप await
एक async
समारोह के दायरे से बाहर समारोह? मुझे पता है कि यह एक चीनी का वादा है, इसलिए इसे जंजीर होना चाहिए, then
लेकिन ऐसा क्यों है कि countPlayer
मैं एक और वादा कर सकता हूं, लेकिन बाहर, मैं नहीं कर सकता await
isInLobby
?
await isInLobby()
, औरinLobby
इसका उपयोग कैसे किया जाता है? इसके अलावा, कहाँ / कैसेcountPlayer
कहा जाता है?