আমি দুটি অ্যাসিঙ্ক ফাংশন একসাথে চেইন করার চেষ্টা করছিলাম, কারণ প্রথমটিতে শর্তসাপেক্ষ রিটার্ন প্যারামিটার ছিল যা দ্বিতীয়টি হয় চালানো, বা মডিউলটি থেকে প্রস্থান করার কারণ হয়েছিল। যাইহোক, আমি চশমার মধ্যে খুঁজে পাচ্ছি না এমন এক বিচিত্র আচরণ পেয়েছি।
async function isInLobby() {
//promise.all([chained methods here])
let exit = false;
if (someCondition) exit = true;
}
এটি আমার কোডের জারজিকৃত স্নিপেট (আপনি এখানে পুরো সুযোগটি দেখতে পারেন ), এটি কোনও খেলোয়াড় যদি ইতিমধ্যে লবিতে থাকে কিনা তা খতিয়ে দেখেন , তবে এটি অপ্রাসঙ্গিক।
পরবর্তী আমাদের এই অ্যাসিঙ্ক ফাংশন রয়েছে।
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
বলা হয়?