首先,我声明一个数组:
let arr = [];
因此,我按以下方式填充此数组:
(async function loop() {
for(let i=timeStart; i<=timeEnd; i+=3600000)
{
await ExternDataProvider.getCountData(i, (i+3600000), localSearchFilters)
.then(function(dataResult){
arr.push(dataResult);
})
.catch(function(err){
});
}
})();
但是,当我创建变量&#34; arr&#34;的console.log时,我得到以下结果:
那么为什么我没有像[2251,215]
这样的东西?
答案 0 :(得分:1)
如果在调用函数后console.log()
数组,则控制台中将有一个空数组,但在解析数据后,控制台将刷新数组的内容。但是如果你console.log(arr[0])
,它会立即显示undefined
。
在我看来,您应该返回您的数组(或解析它)并在另一个then
中捕获已解析的值并在此console.log
then
试试这个:
let arr = [];
setTimeout(function() {
arr.push(1)
}, 5000);
console.log(arr[0]); // prints undefined
console.log(arr); // prints an empty array if you expand the array before 5 seconds, and it will print [1] if you re-expand it after 5 seconds
答案 1 :(得分:0)
您有[2251,215]
但是控制台以不同的方式显示它。
0表示0 th 位置的值。
1表示1 th 位置的值
答案 2 :(得分:0)
也许使用console.log(JSON.stringify(array))
来实现这一目标