Тип аргумента не может быть назначен параметру типа - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь перебрать объект, выполнив:

  const db = admin.firestore()
  const devicesRef = db.collection('devices')
  const devices = await devicesRef.get();
  devices.forEach(async (result, idx, array) => {

  });

Но я получаю ошибку:

Аргумент типа '(результат: любой, idx:any, array: any) => Promise 'нельзя назначить параметру типа' (result: QueryDocumentSnapshot) => void '.

Что я на самом деле не понимаю.Если я избавлюсь от idx, array, сценарий будет работать отлично, но я хочу знать, когда выполняется последний цикл, поэтому я добавляю idx, array ...

Любые идеи о том, что сообщения об ошибках могутимею в виду?

1 Ответ

0 голосов
/ 30 января 2019

Предполагая, что devices - это массив объектов, я не думаю, что вы можете назначить свою функцию там, так как функция ожидает только один аргумент, который получит отдельное устройство.Попробуйте:

  const db = admin.firestore()
  const devicesRef = db.collection('devices')
  const result = await devicesRef.get();

  // adds all results to devices list
  List<any> devices = [];
  for (QueryDocumentSnapshot device : result.getResult()) {
    devices.add(device);
  }

  devices.forEach((device idx, array) => {
    if (idx === array.length -1) {
       // Do specific task
    }
    // some async function
    async (someOtherFunction) => {
       // do something with individual device
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...