我从Firebase存储中获取图像URL,然后将每个URL推入一个单独的数组中,以便稍后在setState时使用它,
但是当我在ForEach外部登录imgUrls时,它将返回空数组!
我尝试使用Promise.all()
,但无法正常工作,无法设置状态!
那我做错了什么?
getImages = async () => {
const refList = storage().ref('/categories/Air/');
const listAll = await refList.listAll();
let imgUrls = [];
let promise = listAll.items.forEach(async itemRef => {
try {
let url = await itemRef.getDownloadURL();
imgUrls.push(url);
console.log('array-imgUrls', imgUrls);
} catch (error) {
console.log('error', error);
}
});
const imageUrls = await Promise.all(promise).then(()=>{
this.setState({URLs:imgUrls})
});
console.log("imageUrls",imageUrls);
}