将Firebase存储中的所有数据放入异步函数React Native中的阵列
我正在尝试获取firebase存储中的所有图像。到目前为止,它是有效的。但问题是如何将数组中的所有数据放在异步函数中,而不仅仅是一个数据,然后将其传递到状态 我的代码:将Firebase存储中的所有数据放入异步函数React Native中的阵列,firebase,react-native,promise,firebase-storage,Firebase,React Native,Promise,Firebase Storage,我正在尝试获取firebase存储中的所有图像。到目前为止,它是有效的。但问题是如何将数组中的所有数据放在异步函数中,而不仅仅是一个数据,然后将其传递到状态 我的代码: async componentDidMount(){ auth().signInAnonymously(); var arr = []; var storageRef = storage().ref("/madu_mubarak/"); await stor
async componentDidMount(){
auth().signInAnonymously();
var arr = [];
var storageRef = storage().ref("/madu_mubarak/");
await storageRef.listAll().then((result)=> {
result.items.forEach((imageItem) =>{
this.displayItem(imageItem)
});
}).catch(function(error) {
console.warn("error "+error);
});
}
async displayItem(imageItem){
var arr = [];
imageItem.getDownloadURL().
then((url) => {
console.warn("ur "+url)
arr.push(url);
this.setState({
isLoad: false,
urlImage: arr
})
}).catch((error) =>{
console.warn("error "+error);
});
// return await Promise.all(arr);
}
请帮忙。
谢谢主要要点是
异步组件didmount(){
auth().signinanoymously();
var storageRef=storage().ref(“/madu_mubarak/”);
等待storageRef.listAll()。然后((结果)=>{
让承诺=result.items.map((imageItem)=>{
返回imageItem.getDownloadURL()
});
Promise.all(promises).then(URL=>this.setState({images:URL})
}
您需要创建一个从getDownloadUrl返回的承诺数组,并等待使用Primise.all解析所有承诺
然后,您可以将结果分配给状态查看Promise.all([…])。您可以向其传递一个promises数组,并且只有当数组中的所有promises都存在时,它才会解析resolves@TomSlutsky我已经看过了Promise.all,但我对这方面还是新手,所以我不知道如何实施。