React 变量值没有改变

IT技术 javascript reactjs firebase firebase-storage
2021-05-03 23:23:56

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

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

谢谢!

1个回答

您的操作是异步的。这意味着“then”函数仅在 getDownloadURL() 完成时触发。但是当内容为空时,console.log 会立即触发。所以如果你想对内容做一些事情,你应该在 'then' 回调中做:

let content = null;
storage.ref().child(snapshot.val().content).getDownloadURL()
.then(url => {
   content = url; 
   console.log('content', content);
} );