最初の関数には条件付きの戻りパラメーターがあり、2番目の関数が実行されるか、モジュールを終了するため、2つの非同期関数をチェーン化しようとしました。しかし、スペックでは見つけられない奇妙な振る舞いを見つけました。
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
呼ばれますか?