[英]array value not showing length, but when i open so the element is exist
數組值不顯示長度,但當我打開時元素存在。 但是長度和數組的一些其他功能不起作用...“”“const getingLikedNft = async () => { setMyNftLoading(true); const res = await axios.get( ${BACKEND_URL}views_and_likes
); console.log(" resshan", res); // 讓 likedNft = []; var myLikedNft = new Array();
res?.data.forEach((element) => {
// console.log("xshan", element);
if (element?.likedAccounts.length > 0) {
element?.likedAccounts.forEach(async (elem) => {
if (elem?.toLowerCase() == user?.address?.toLowerCase()) {
console.log("resshan_elem", element);
try {
let res = await axios.post(`${BACKEND_URL}single-nft`, {
tokenId: element.tokenId,
tokenAddr: element.tokenAddr,
});
console.log("reslikedNFT", res.data);
// const uri = await contracts?.closedSeaNft?.methods
// .tokenURI(element.tokenId)
// .call();
// const res = await axios.get(uri);
var nftData = {
description: res?.data?.metadata?.description,
image: res?.data?.metadata?.imageUrl,
title: res?.data?.metadata?.name,
url: `/asset/${res?.data?.tokenAddr}/${res?.data?.tokenId}`,
};
console.log("reslikedN22FT2324232", Array.prototype.nftData);
myLikedNft = [...myLikedNft, nftData];
// myLikedNft.push({
// description: nftData.description,
// image: nftData.imageUrl,
// title: nftData.name,
// url: `/asset/${res?.data?.tokenAddr}/${res?.data?.tokenId}`,
// });
} catch (err) {
console.log("element?.likedAccounts [err]", err);
}
// likedNft.push(element);
// console.log("elem", elem);
}
});
}
});
console.log("reslikedNFT2321312341312dasd", myLikedNft);
setMyLikesCollection(myLikedNft);
setTimeout(() => {
setMyNftLoading(false);
}, 2000);
};"""
但是當我打開它時,元素就存在了。
我該如何解決這個好心的幫助...
您正在為forEach
循環中的每次迭代進行異步調用。 但是forEach
的執行將在您獲得每個異步調用的響應之前完成。
當您將myLikedNft
打印到控制台時,在打印時,數組沒有數據,因為異步調用尚未解析。 但是當您在控制台中展開它們時,它會為您提供表達式的最新值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.