как использовать asyn c в nodejs? ошибка при использовании asyn c await - PullRequest
0 голосов
/ 31 марта 2020

Я написал облачную функцию Google, которая читает файл из корзины и затем возвращает содержимое.

   async function getFileContent(fileName, bucketName) {
      const storage = new Storage();
      const file = await storage.bucket(bucketName).file(fileName);
      file.download(function(err, contents) {
           console.log("file err: "+err);
           console.log("file data: "+contents); //contents is displaying data here
          return contents;
      });
    }
//cloud function starts
    exports.getdata = async function(req, res) {
      var filecontent = await getFileContent("file1", "bucket1");
      console.log("outside "+filecontent); //displaying as undefined
     ));
    }

Я хочу выполнить console.log ("outside" + filecontent); только один раз getFileContent возвращает значение после обработки.

1 Ответ

0 голосов
/ 16 апреля 2020

Я допустил небольшую ошибку здесь, должен сохранить await для file.download, где, как в вышеупомянутом запросе, я ожидал на storage.bucket(bucketName).file(fileName);

 async function getFileContent(fileName, bucketName) {
      const storage = new Storage();
      const file = storage.bucket(bucketName).file(fileName);
      content = await file.download(function(err, contents) {
           console.log("file err: "+err);
           console.log("file data: "+contents); //contents is displaying data here
          return contents;
      });
    }

приведенный выше код работает нормально после внесения этого изменения. Не уверен, почему за него проголосовали, вместо того, чтобы исправить ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...