私のコードは、このようなものである一方、中に取り出すことができます。ループがスケジュールされている間、次のチックに多くのフェッチがあるようです。しかし、次のダニにスキップしないでください。 問題を解決するにはどうすればよいですか?にはどうすればループ
2
A
答えて
1
while(true)
はシングル「ダニ」内fetch
無限に多くの時間を呼び出そうとします無限ループを作成します。新しいfetch
コールの発行は決して終わらないので、次のダニには決して行きません。
この機能はCPUを大量に消費するため、ページ全体がロックされる可能性があります。
解決策はありますか?
おそらく、結果が何らかの条件を満たすまでフェッチを続けることです。
var resultFound = false;
var fetchNow = function() {
fetch('some/address').then(function() {
if(someCondition) {
resultFound = true;
}
else {
fetchNow();
}
});
}
fetchNow();
この方法は、代わりに
fetch!
fetch!
fetch!
fetch!
...
の:あなたはそれがfalse
ある場合fetch
をthen
コールバックで状態を確認し、再発行していることを達成することができます。 ..ふるまうことになるだろう
fetch!
wait for response
check condition
if false, fetch!
wait for response
check condition
if true, stop.
...これはおそらくあなたが期待していたものです。 fetch
は、自然の中でasync
ので、while
が完了するまでにfetch
async
操作を待つと、すぐに次の反復に行くのではないだろうどこ
2
while
ループがsync
です。
あなたが同期、次のようにこれを達成することができますので、whileループは、ここで私が言うも、無用間違っている、
function syncWhile(trueOrFalse){
if(trueOrFalse) {
fetch('some/address').then(){
if(someCondition){
trueOrFalse = false;
}
syncWhile(trueOrFalse);
}
}
}
syncWhile(true);
0
をすべてフェッチオフwhileループの火災それらのいずれかがthen()
に到達する前に、 。
フェッチを継続するかどうかは、then()
にする必要があります。
then()
-syntaxが間違っているようです(例を編集しているだけのエラーかもしれません)。さらに、ブーリアンヘルパー変数を省略することもできます(別の場所で必要な場合を除きます)。
function fetchUntilCondition(){
fetch('some/address').then(function(response){
if(!someCondition) {
fetchUntilCondition(); // fetch again
}
});
}
fetchUntilCondition();
関連する問題
- 1. foreachループにループするときに、どうすればいいですか?
- 2. これをループにするにはどうすればよいですか?
- 3. これをループにするにはどうすればいいですか?
- 4. ループで$ _POSTを行うにはどうすればいいですか
- 5. にはどうすれば
- 6. にはどうすれば
- 7. にはどうすれば
- 8. にはどうすれば
- 9. にはどうすれば
- 10. にはどうすれば
- 11. にはどうすれば
- 12. このループを書くにはどうすればよいでしょうか?
- 13. グリッドを適切にループするにはどうすればよいですか?
- 14. ループを2倍にするにはどうすればいいですか?
- 15. マップをループに変更するにはどうすればよいですか?
- 16. while()ループをif()ステートメントに戻すにはどうすればよいですか?
- 17. メインコードからwhileループに戻るにはどうすればいいですか?
- 18. ジキルポストでタグをループするにはどうすればいいですか?
- 19. JavaScriptでループを構築するにはどうすればよいですか?
- 20. ジェネリックをループでキャストするにはどうすればよいですか?
- 21. JQueryでループを実行するにはどうすればよいですか?
- 22. ループを終了するにはどうすればよいですか?
- 23. ループで値を変更するにはどうすればいいですか
- 24. Pythonでループを作成するにはどうすればよいですか?
- 25. このループを解除するにはどうすればいいですか?
- 26. JavascriptExecutorをループでチェックするにはどうすればよいですか?
- 27. whileループを終了するにはどうすればいいですか?
- 28. 各ループでナビゲートするにはどうすればいいですか?
- 29. forループを作成するにはどうすればいいですか?
- 30. フォルダをループするにはどうすればいいですか?
私はあなたがjsfiddle –
を投稿する場合、これは非常に多くの代わりにwhileループの[XY問題](http://xyproblem.info/) –
使用 'setTinterval()'のように聞こえるあなたの問題を解決します。 – n00dl3