gpt4 book ai didi

javascript - 在遍历 .JSON 时使用 Promise.all()?

转载 作者:行者123 更新时间:2023-11-30 00:07:21 30 4
gpt4 key购买 nike

我有一个包含几种不同类型数据结构的 .JSON,我用一组 for 循环对其进行迭代,每个 for 循环都有一个运行在其上的异步函数——即在 SQLite 数据库上插入——但我想等到所有 for 循环的所有插入都完成。这是一个这样的循环:

for (let i = 0; i < data.json().products.length; i++) {
this.product.addItem(data.json().products[i]);
}

这是 addItem 函数:

addItem(product){        
this.productsSQL.query('INSERT INTO ...').then((data) => {
...
}, (error) => {
...
});
}

我想我必须将 addItem 更改为:

addItem(product){        
return this.productsSQL.query('INSERT INTO ...').then((data) => {
return true;
}, (error) => {
return false;
});
}

然后每个循环我都需要使用一个 promise.all(),但我还需要一个将所有循环放在一起的 promise.all()?

最佳答案

基本上创建一个 promise 数组并将您的代码更新为以下应该有效:

var promises = [];
for (let i = 0; i < data.json().products.length; i++) {
promises.push(this.product.addItem(data.json().products[i]));
}


Promise.all(promises).then((data) => {
return true;
}, (error) => {
return false;
});

让 addItem 返回一个 promise :

addItem(product){        
return this.productsSQL.query('INSERT INTO ...');
}

关于javascript - 在遍历 .JSON 时使用 Promise.all()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37996616/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com