我有一个循环,正在制作多个 ajax 获取。
for dataType in @dataTypes
url = someUrl + dataType
console.log(dataType)
console.log url
$.ajax(
url : url
type : 'GET'
success : (data) => @populateSearchIndices(data,dataType)
)
populateSearchIndices:(data,dataType)->
console.log "looking at what indexes are there"
console.log dataType
indices = []
for object in data
indices = indices.concat(Object.keys(object))
console.log "indices"
console.log indices
arr = @typeIndexMap[dataType]
if arr
@typeIndexMap[dataType] = @typeIndexMap[dataType].concat(indices)
else
@typeIndexMap[dataType] = indices
console.log "typeIndexMap"
console.log @typeIndexMap
dataType 中的 console.log 始终返回 @dataTypes 中的最后一个 dataType,尽管第一个函数中的 console.log dataType 显示了两者,这表明正在发生循环。
我也打印了 url - 它们都是不同的,但我得到的响应与最后一个 dataType 附加到 someUrl 并使用该 url 进行多次获取完全相同。
为什么会这样?我认为这与回调的性质有关。