无法访问JavaScript数组,并且循环无法正常工作

时间:2020-04-18 16:07:49

标签: javascript firebase firebase-realtime-database firebase-storage

现在我知道我的问题有可能重复。但是即使如此,如果您能引导我找到正确的答案,我将不胜感激。

是javascript新手,我的问题是我无法遍历数组。

这是我的脚本

    either (error "error 123") pure . Y.decodeEither' =<< BS.readFile "my_config.yaml"

我要做的就是从Firebase存储器中获取图像URL列表,并将其存储在数组中,然后使用for循环将它们分别显示到html页面。现在,当我登录console.log(links [1])时,我不确定,并且for循环不会完全运行。

有任何想法,请帮忙。问候。

2 个答案:

答案 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时,链接为空,因为您尚未得到任何答案。