现在我知道我的问题有可能重复。但是即使如此,如果您能引导我找到正确的答案,我将不胜感激。
是javascript新手,我的问题是我无法遍历数组。
这是我的脚本
either (error "error 123") pure . Y.decodeEither' =<< BS.readFile "my_config.yaml"
我要做的就是从Firebase存储器中获取图像URL列表,并将其存储在数组中,然后使用for循环将它们分别显示到html页面。现在,当我登录console.log(links [1])时,我不确定,并且for循环不会完全运行。
有任何想法,请帮忙。问候。
答案 0 :(得分:1)
那是因为您正在将[
{
"name": "Sampleproject 1",
"tasks": [
{
"order": 1,
"description": "Do something 1",
"status": "Done",
"active": false
},
{
"order": 3,
"description": "Do something 3",
"status": "Open",
"active": false
},
{
"order": 2,
"description": "Do something 2",
"status": "Open",
"active": true
}
]
},
{
"name": "Sampleproject 2",
"tasks": [
{
"order": 1,
"description": "Do something 1",
"status": "Done",
"active": false
},
{
"order": 1,
"description": "Do something 3",
"status": "Open",
"active": true
},
{
"order": 1,
"description": "Do something 2",
"status": "Open",
"active": true
},
{
"order": 2,
"description": "Do something 4",
"status": "Open",
"active": false
}
]
}
]
推送到Promise函数url
中的数组,但是从Promise中调用了itemRef.getDownloadURL()
。在将console.log(links)
推入阵列之前,console.log
可能会运行。
这是修改代码的一种方法:
url
但是,您可能需要对循环处理promise进行研究,以便获得所有URL(例如,itemRef.getDownloadURL()
.then(function(url) {
links.push(url)
})
.then(function() {
console.log(links)
})
.catch(function (err) {
console.log(err)
})
,links
/ Promise.all()
)的await
答案 1 :(得分:0)
getDowloadUrl似乎是一个异步函数,因此当您调用log时,链接为空,因为您尚未得到任何答案。