[英]Unexpected `await` inside a loop no-await-in-loop
我在以下循環中遇到錯誤:
循環中的意外
await
no-await-in-loop
const deviceSet = {};
for (const target of body.inputs[0].payload.devices) {
const doc = await firestore().doc(`devices/${target.id}`).get();
const device = Device.createDevice(doc.id, doc.data());
deviceSet[device.id] = device.reportState;
}
你可以試試老式的方法:
const deviceSet = {};
const target = body.inputs[0].payload.devices;
for (let i = 0; i < body.inputs[0].payload.devices; i++) {
const doc = firestore().doc(`devices/${target[i].id}`).get();
const device = Device.createDevice(doc.id, doc.data());
deviceSet[device.id] = device.reportState;
}
遞歸可以解決你的問題。 這不是經過測試的代碼,你可以按照這個想法工作
async function test(i = 0) {
const deviceSet = {};
const target = body.inputs[0].payload.devices;
const doc = await firestore().doc(`devices/${target[i].id}`).get();
const device = Device.createDevice(doc.id, doc.data());
deviceSet[device.id] = device.reportState;
if (i < body.inputs[0].payload.devices) {
test(i + 1);
}
}
test(0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.