Javascript 如何将getDownloadURL设置为变量?
我正在使用angularFireStorage(在我的Ionic应用程序中) 我取得了一些成功,例如,我可以查看我的Javascript 如何将getDownloadURL设置为变量?,javascript,firebase,firebase-storage,Javascript,Firebase,Firebase Storage,我正在使用angularFireStorage(在我的Ionic应用程序中) 我取得了一些成功,例如,我可以查看我的console.log(res)来单击我的控制台中的链接以查看皮带图像。但是,我无法将其保存到变量,这就是问题所在。最后,我想使用图像标签并使用src链接皮带图像。这是我的密码: const ref = this.storage.ref('belts/'); ref.listAll().subscribe(belt=> belt.items.forEach(ite
console.log(res)
来单击我的控制台中的链接以查看皮带图像。但是,我无法将其保存到变量,这就是问题所在。最后,我想使用图像标签并使用src
链接皮带图像。这是我的密码:
const ref = this.storage.ref('belts/');
ref.listAll().subscribe(belt=>
belt.items.forEach(item=> printImage(item))
)
function printImage(imageRef){
let temp = imageRef.getDownloadURL();
temp.then(res=> {
console.log(res)
this.mySRCs.push(res)
})
}
以及我如何测试它
错误是:
Uncaught (in promise): TypeError: Cannot read property 'mySRCs' of undefined
TypeError: Cannot read property 'mySRCs' of undefined
我觉得我在一两个月前做了类似的事情,但这次我无法在我的应用程序中看到图像。谢谢您的帮助。我认为您的问题在于在“printImage”函数中使用“this”关键字 您需要执行以下操作之一: belt.items.forEach(item=>printImage.bind(this,item)) 或者假设你有 常数mySRCs=[] 然后将该字段作为参数传递给printImage函数 belt.items.forEach(item=>printImage(item,mySRCs)) 而不是在函数中使用“this”,而是使用
function printImage(imageRef, mySRCs){
let temp = imageRef.getDownloadURL();
temp.then(res=> {
console.log(res)
mySRCs.push(res) //<--- remove this
})
}
函数printImage(imageRef,mySRCs){
让temp=imageRef.getDownloadURL();
温度然后(res=>{
console.log(res)
mySRCs.push(res)//您可能已将其保存到变量中。您确定这不仅仅是因为获取下载URL是一个无法立即完成的异步操作造成的问题吗?如果您添加一些日志以查看事件的执行顺序,会怎么样?