簡體   English   中英

循環中的意外“等待” no-await-in-loop

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM