【发布时间】:2021-04-07 01:03:26
【问题描述】:
我有一张地图,它将获取一组文件,并从 firebase 存储中返回一组下载 url。
const imageUrls = images.map((image, index) => {
const imageUploadTask = storage()
.ref(`products/${dataUser.name}/${name}/${image.name}${index}`)
.put(image);
imageUploadTask.on(
"state_changed",
(snapshot) => {},
(error) => {
console.log(error);
},
() => {
storage()
.ref(`products/${dataUser.name}/${name}/${image.name}${index}`)
.getDownloadURL()
.then((url) => {
console.log(url);
return url;
})
.catch((err) => {
console.log(err);
});
}
);
});
当我记录 imageUrls 数组时,它返回一个未定义的数组。但是在控制台中,我看到了一段时间后记录的 url。这意味着 url 正在上传,但代码没有等待它,并且在 url 未定义时返回。
我做错了什么?如何让它发挥作用?
【问题讨论】:
-
imageUploadTask是一个 UploadTask 对象,其工作方式类似于一个承诺。使用它来确定上传何时完成。之后就可以得到它的下载地址了。
标签: javascript firebase-storage