【发布时间】:2018-04-27 15:04:35
【问题描述】:
好的,这是我的循环:
if (list.length) {
for (let i = 0; i < list.length; i++) {
let fruit = list[i].attributes;
if (fruit.color === 'red') {
id = fruit.id;
fruit.path = base.fruit_directory + "/" + id;
saveFruit(id);
}
}
}
现在,每当出现 === 红色的水果时。保存水果不会自动执行。但是在所有其他事情发生之后,这是为什么呢?
有什么解决方法吗?
【问题讨论】:
-
saveFruit是同步函数吗? -
您正在使用 let i 并使用 j 来检查长度和递增 j ,
-
saveFruit方法是异步的吗?如果是,那么这就是原因。如果您希望它在迭代下一个“水果”之前完成,您可以让它返回一个承诺,或者让它同步。此外,您的循环初始化使用j而不是i。你从未初始化变量j。此外,您的循环正在迭代i,但i永远不会递增。所以,你只检查水果数组的第一个元素 -
您的代码不完整且无效。发布一个真实的演示。
-
@EvanBechtol 我如何使它同步?
标签: javascript function loops