代码之家  ›  专栏  ›  技术社区  ›  Simon

参数类型不能分配给类型的参数

  •  0
  • Simon  · 技术社区  · 5 年前

    我尝试通过执行以下操作来循环对象:

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

    但我得到一个错误:

    类型为'(result:any,idx:any,array:any)=>promise'的参数不可分配给类型为'(result:querydocumentsnapshot)=>void'的参数。

    我不太明白。如果我摆脱 idx, array 这个脚本工作得很好,但是我想知道最后一个循环是什么时候执行的,这就是为什么我要添加 数组

    知道错误信息可能意味着什么吗?

    1 回复  |  直到 5 年前
        1
  •  1
  •   dabishan    5 年前

    假设 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
        }
    });