简体   繁体   English

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

[英]Unexpected `await` inside a loop no-await-in-loop

I'm getting an error inside the following 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;
   }

You could try it the old fashioned way:你可以试试老式的方法:

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;
   }

Recurssion can solve your problem.递归可以解决你的问题。 This is not tested code, you can work on the idea这不是经过测试的代码,你可以按照这个想法工作

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