nodejs asyn c ждут не возвращаемый массив - PullRequest
0 голосов
/ 30 января 2020

Я могу правильно настроить вывод вывода журнала, но когда я пытаюсь вернуть массив, происходит сбой (ie: нет вывода)


    //get all geo route
    app.get('/api/geo', function(req, res){
       res.send(getGeo());
    });

    async function getGeo() {
      let query = firestore.collection('geo'); //.where('foo', '==', 'bar');

      let response = await query.listDocuments().then(documentRefs => {
        return firestore.getAll(...documentRefs);
      }).then(documentSnapshots => {
         let geomatches = [];
         for (let documentSnapshot of documentSnapshots) {
            if (documentSnapshot.exists) {
              //console.log(`Found document with data: ${documentSnapshot.id}`);
              geomatches[documentSnapshot.id] = documentSnapshot.data();
            }//if
         }//for
         return geomatches;
      });

      return response;

    }

Ответы [ 2 ]

1 голос
/ 30 января 2020

используйте ожидание

  //get all geo route
   app.get('/api/geo', async function(req, res){
      res.send( await getGeo());
   });
1 голос
/ 30 января 2020

getGeo() является функцией async. Вы должны использовать await, чтобы позвонить. Также объявите свой обратный вызов маршрута как async:

//get all geo route
app.get('/api/geo', async function(req, res){
   res.send(await getGeo());
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...