【发布时间】:2020-08-21 20:45:04
【问题描述】:
我有一个将文件写入 firebase 存储的 firebase 函数:
var tempJSONObject = {
testing: "why are we testing",
anothertest: "constanttesting"
}
try {
const fileName = `storedjokes/81.json`
const file = bucket.file(fileName);
console.log('created file');
const writeStream = fs.createWriteStream(JSON.stringify(file));
console.log('created write stream');
var stringy = JSON.stringify(tempJSONObject);
console.log("stringy created");
await writeStream.write(stringy, (err) => {
console.log("writing started");
if (err) {
console.log(err.message);
} else {
console.log("data written");
}
});
} catch (e) {
console.log('error', e);
}
console.log('post write');
代码执行正常,但控制台打印
写后
从不打印
开始写
为什么 .write() 语句没有正确执行,它之后的代码怎么可能在它完成之前执行?
【问题讨论】:
-
writeStream.write不返回承诺,因此 await 不会做任何事情来暂停代码。 -
那我怎么暂停呢?
-
如果这是您的实际问题,那么我建议您编辑问题以更好地解释您的目标。严格来说,我已经回答了你关于为什么写入没有按你期望的方式工作的问题。我还建议显示整个函数,而不仅仅是其中的代码行。
标签: javascript node.js firebase google-cloud-functions google-cloud-storage