gpt4 book ai didi

javascript - 在迭代中解决 promise

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

我正在寻找迭代一些 promise ,但 lambda 函数在它们被解决之前就完成了。

module.exports.handler= async(event, context, callback) => {
let a = {'a': 'b', 'x', 'y'};
let b = {'i': 'n'};

Object.keys(listA).map(async ax => {
Object.keys(listB).map(async bx => {
await validate(ax, bx);
}
}
}

async function validate(a, b) {
let promise = getPromise(a, b);
await promise.then((output) => {
...
console.log('success');
});
}

如何在流程完成之前解决所有 promise ?

最佳答案

这是因为在需要回调的循环中等待不会被同步处理 (See this)。

避免这种情况的一种方法是构建一个 promise 数组,并使用 Promise.all 等待完成。

例子:

module.exports.handler = (event, context, callback) => {
let a = {'a': 'b', 'x': 'foo', 'y': 'bar'};
let b = {'i': 'n'};

let promises = []
Object.keys(a).forEach(ax => {
Object.keys(b).forEach(bx => {
promises.push(validate(ax, bx));
})
})

Promise.all(promises)
.then(results => {
//do stuff with results
})
.catch(error => {
//handle error
})
}

关于javascript - 在迭代中解决 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59253452/

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