内部に約束している "無限"のwhileループが必要です。次のコード例があります:プロミスと非同期エンドレスループを持つ方法
したがってwhile-loopは無限に実行する必要があります。ただし、エラーが発生する場合を除き、whileループは停止する必要があります。どうすればこれを達成できますか?
私はあなたは私が何を意味するかを理解することができることを望むと事前に感謝:)
内部に約束している "無限"のwhileループが必要です。次のコード例があります:プロミスと非同期エンドレスループを持つ方法
したがってwhile-loopは無限に実行する必要があります。ただし、エラーが発生する場合を除き、whileループは停止する必要があります。どうすればこれを達成できますか?
私はあなたは私が何を意味するかを理解することができることを望むと事前に感謝:)
どのように私はこれを達成することができますか?
約束は解決できないため、ブロックループはありません。 JavaScript's event loop on MDNについて詳しく知ることができます。約束が解決されたとき
代わりに、もう一度関数を呼び出す:実行するためにそれらを引き起こしたスレッドが完了した後に(履行または拒否ハンドラを呼び出す)
Promise.resolve().then(function resolver() {
return someAsyncFunction()
.then(doSomething)
.then(resolver);
}).catch((error) => {
console.log("Error: " + error);
});
約束反応が非同期で実行されています。最初のwhileループは無限の**ブロッキング**ループであり、タイムアウトコールバックが発生しないため決して解決されない無限の約束を作成します:D _Possibly_前回の約束から3秒待っているタイムアウトまたはインターバルタイマーが必要です非同期チェックのために作成されたものは、別のチェックを実行する前に解決されますか? – traktor53
問題は、私の約束が解決するのにどれくらい時間がかかっているか分かりません。私の例を明確にするために 'setTimeout()'しか使わなかったのです。しかし、Felix Klingのソリューションは完璧に動作するので、他のソリューションは必要ありませんが、とにかく感謝します:) – C4rmond4i