ここで[下の編集]の理解がネイティブプログラムの流れに反応 - ループ
が現在のコードです:内部のフェッチを行う前にループが完了したので
for(toy of toys) {
fetch(url, {headers: headers})
.then((response) => response.json)
.then((responseJson) => {
<insert toy to database>
})
}
上記のコードは正常におもちゃを投稿できません。どのようにこれを正しく実装して、responseJsonプロパティを持つおもちゃをデータベースに正しく挿入できるようにするのですか?言い換えれば、ループを進める前にフェッチが完了するのを待つ方法はありますか?
[PREVIOUS POST]
私は次のコードを持っている:
function hello(callback1) {
for(var i = 0; i <= 100; i++){
console.log(i)
}
callback1()
}
function callback1() {
console.log("hello")
}
私の質問で、callback1
仕上げたりしないようにループを待ちますか?ここで
は、2つ目のシナリオである:
function hello() {
for(var i = 0; i < 100; i++){
console.log("apples")
}
for(var i = 0; i < 100; i++){
console.log("peaches")
}
}
出力は次のようになります。
apples
apples
apples
apples
...
peaches
peaches
peaches
...
または
apples
apples
peaches
apples
peaches
...(in any order since they execute at the same time)
私はネイティブ反応の流れを理解することに苦労しています私はコードの線形実行に慣れています。ダミーについての示唆も示せば、それは素晴らしいことでしょう。 MDN documentationで言及として
このコードをテストするだけで何が止まっていますか?または、テストした結果、期待した結果と異なる結果が得られた場所(また、これらの機能が順次実行されないと思うのはなぜですか?) – UnholySheep
ええ、これを試してみませんか?この種のコードをブラウザですぐにテストするためには、Web上にJavascriptワークベンチがあります。あなたがここに示しているすべてのものはかなり単純ですが、そこには非同期なものはありません。より複雑な例ここhttps://stackoverflow.com/questions/16336367/what-is-the-difference-between-synchronous-and-asynchronous-programming-in-node –
お返事ありがとう!私は同様のコードを実行していますが、期待した結果が得られません。コードは同時にループを実行しているようです。私は関数が非同期であるので、JavaScriptが順番に実行されないと思います。その概念を完全に理解したことはありません。 –