【发布时间】:2018-03-01 23:44:07
【问题描述】:
自学并努力了解回调的工作原理。
我的回调处理函数无法访问数组的单个元素,即:
- “console.log(ResultsArray)”有效
- “console.log(ResultsArray[1])”返回“未定义”
但是,“ResultsArray[1]”直接在 Firefox 控制台中执行时效果很好。
我做错了什么?
<script>
ArrayOfTickers=["SPY","DIA","IWM","C"];
ResultsArray=[];
SomeArray=[]
function Main(Array, callback){
recursive(0);
function recursive(counter) {
if (counter < ArrayOfTickers.length) {
fetch("https://api.iextrading.com/1.0/stock/" + ArrayOfTickers[counter] + "/time-series")
.then(function(response) {
response = response.json()
.then(function(data) {
ResultsArray[counter]=data
})
})
recursive(counter+1);
} else {
callback(ResultsArray);
};
} //End recursive function
}; //End Main Function.
Main(ArrayOfTickers, function(ResultsArray){
console.log(ResultsArray)
})
</script>
【问题讨论】:
-
ResultsArray究竟返回了什么,它是否返回一个数组结构,该数组中是否有任何项目? -
ResultsArray [...] 0: 数组 [ {...}, {...}, {...}, ... ] 1: 数组 [ {...}, {...}, {...}, ... ] 2:数组 [ {...}, {...}, {...}, ... ] 3:数组 [ {...}, {...}, {...}, ... ] 长度:4
标签: javascript callback