我目前正在做的是在 promise 中进行循环,如下所示:
asyncFunc()
.then(() => {
return new Promise((resolve) => {
for (let i = 0; i < length; i++) {
// do something
if (j == length - 1) {
return resolve(result);
}
}
})
.then((result) => {
console.log("This shows after the loop above is done");
console.log(result);
});
我正在考虑通过使用 map/filter/reduce 以更简洁的方式替换它,而不是用这个替换 for 循环:
return new Promise((resolve) => {
let result = some_list.filter((item) => {
return item.count > 2;
})
return resolve(result);
})
这可行吗?还是我应该坚持使用 for 循环?
我最近阅读了有关混契约(Contract)步代码和异步代码的文章,但还没有找到如何将它们与 promises 混合的解决方案。
最佳答案
是的,这是非常合理的代码。你甚至可以把它写成:
return new Promise((resolve) => {
resolve(some_list.filter((item) => {
return item.count > 2;
}));
});
关于javascript - 是否可以通过使用 Promise.resolve 返回结果来在 promise 中使用 map/filter/reduce?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46843921/