我正在尝试创建一个测试,以验证我已经put
在dynamoDB表中有一个项目。为了做到这一点,在我打了一个应该put
数据库中的物品(车辆)的呼叫之后,我正试图从数据库中get
车辆。
在我的测试中,我希望重试次数最多(5)。我希望这个while循环可以阻塞线程,直到我的查询解决了问题,或者尝试了5次。在我的测试中,我有:
let count = 0
let car
while (!car || count < 5) {
setTimeout(async () => {
car = await findVehicle(greenCar.vehicleInfo)
}, 3000)
count++
}
findVehicle
是一个异步函数,它从dynamoDB表执行get
答案 0 :(得分:1)
如果要等待每次迭代,您可以这样做:
let count = 0;
let car;
while (!car || count < 5) {
await new Promise((resolve) =>
setTimeout(async () => {
car = await findVehicle(greenCar.vehicleInfo);
resolve();
}, 3000));
count++
}
因此,您正在解决获得数据后正在等待的承诺。同样,您的函数必须异步才能使用await。希望这会有所帮助。