如何在nodejs中使用异步等待?使用异步等待时出错

时间:2020-03-30 22:20:33

标签: node.js async-await google-cloud-functions google-cloud-storage

我已经编写了Google Cloud函数,该函数从存储桶中读取文件,然后返回内容。

   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 :(得分:0)

我在这里犯了一个小错误,必须将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;
      });
    }

进行更改后,上面的代码可以正常工作。不知道为什么不赞成改正错误。