我试图做一些反应,但被卡住了..我不知道为什么会这样,我无法解释自己。

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);
} );

07-24 09:44
查看更多