我试图做一些反应,但被卡住了..我不知道为什么会这样,我无法解释自己。
let content = null;
storage.ref().child(snapshot.val().content).getDownloadURL().then(url => content = url ); // setting value
console.log('content', content); // returns initial value, in my case, null. why?
19号线
https://pastebin.com/UkJyJihB
谢谢!
最佳答案
您的操作是异步的。这意味着仅当getDownloadURL()完成时才触发“ then”功能。但是,当内容为null时,console.log将立即触发。因此,如果您想对内容进行处理,则应在“然后”回调中进行处理:
let content = null;
storage.ref().child(snapshot.val().content).getDownloadURL()
.then(url => {
content = url;
console.log('content', content);
} );