【问题标题】:Wait file to be uploaded in firebase before responding nodeJs [duplicate]在响应nodeJs之前等待文件上传到firebase [重复]
【发布时间】:2021-07-23 01:36:30
【问题描述】:

您好,我想在文件上传到 firebase 后返回响应,我现在可以上传,但我希望在返回响应之前上传文件

const file = bucket.file(`equipo_${idEquipo}`);
  const fileStream = file.createWriteStream({ resumable: false });
  fileStream.end(newImg.buffer);
  fileStream.on("error", err => console.log(err));
  fileStream.on("finish", () => {
  }); 
return response;

【问题讨论】:

  • writeStream 是异步的,因此您的函数必须使用回调来返回结果或需要返回 Promise。
  • 如何返回此代码的承诺?等待解决
  • 链接的副本展示了如何将代码包装到一个 Promise 中并在 finish 上调用 resolve 和在 error 上调用 reject

标签: javascript node.js firebase async-await


【解决方案1】:

你已经有了 filestram 回调

const file = bucket.file(`equipo_${idEquipo}`);
 const fileStream = file.createWriteStream({ resumable: false });
fileStream.end(newImg.buffer);
fileStream.on("error", err => console.log(err));
fileStream.on("finish", (response) => {
return response;
}); 

【讨论】:

  • 回调中的return语句应该如何传播到外部函数?
  • 您需要发布完整的代码块才能确定,这不是问题的一部分。您正在“返回”响应,这表明这是响应函数返回的函数的一部分,因此让 upload = uploadFunction() 将返回响应等
  • 我不是写这个问题的人。但是完成回调中的return 不会从uploadFunction 返回任何内容,与该函数的实际外观无关。
猜你喜欢
  • 2012-11-17
  • 2014-02-10
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
  • 1970-01-01
  • 2021-03-06
  • 1970-01-01
相关资源
最近更新 更多