我已经编写了谷歌云函数,它从bucket中读取文件,然后返回内容。
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在处理后返回值。
我在这里犯了一个小错误,必须为file.download
保留await
,就像在上面提到的查询中一样,我在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;
});
}
进行此更改后,上面的代码运行良好。不知道为什么它被否决而不是纠正错误。