[以下编辑]
以下是当前代码:
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
会等待循环结束吗?
这是第二种情况:
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)
我很难理解反应本机程序的流程,因为我习惯于线性执行代码。如果你也可以推荐傻瓜的读数,那就太好了。
答案 0 :(得分:1)
正如MDN documentation中提到的,for
循环的语法是:
for ([initialization]; [condition]; [final-expression])
statement
statement
的位置:
只要条件的计算结果为true,就会执行的语句。要在循环中执行多个语句,请使用块语句({...})对这些语句进行分组。要在循环中不执行任何语句,请使用空语句(;)。
这意味着for
循环中的所有内容都将在执行以下代码之前执行。
function hello(callback1) {
for(var i = 0; i <= 10; i++){
console.log(i)
}
callback1()
}
function callback1() {
console.log("hello")
}
hello(callback1);
&#13;
答案 1 :(得分:0)
我在这篇文章中找到了答案:
How to make a javascript FOR LOOP wait for certain conditions before looping
在这些情况下,递归更适合使用。