如何将状态对象/数据传递给(异步)ajax 回调
How to pass state object/data to an (async) ajax callback?
我正在循环作用域中进行ajax调用,我需要成功回调才能使用调用它的正确"i"。
像这样(伪JavaScript代码):
for (i = 1 ; i <= 10 ; ++i)
{
$.ajax( { ....,
success : function(data) {
// I want to use the correct i HERE
}
});
}
显然它不起作用,因为当调用成功回调时,i 值与回调不同步......
对此的规范解决方案是使用立即执行的函数表达式来创建闭包。
for (i = 1 ; i <= 10 ; ++i)
{
(function (i) {
$.ajax({
success : function(data) {
// I want to use the correct i HERE
}
});
})(i);
}
只需就地创建一个函数作用域:
for (i = 1 ; i <= 10 ; ++i) {
(function(i) {
$.ajax({
success : function(data) {
console.log( i );
// I want to use the correct i HERE
}
});
}(i));
}
相关文章:
- Meteor:异步回调问题
- JavaScript中的异步回调
- 如何将此异步回调转换为生成器
- 在Nodejs中堆叠异步回调事件的最佳方式
- 从异步回调中获取值
- jasmine 2-在jasmine指定的超时时间内未调用异步回调.DEFAULT_TIMEOUT_INTERVAL
- 将数据注入异步回调(使用 node.js)
- 由于异步回调,变量被覆盖
- 管理Meteor中的异步回调
- 如何等到异步回调完成后才能使用检索到的数据
- Node.JS函数返回异步回调函数的值
- 将Node REPL调整为不阻塞异步回调的提示
- 如何正确地将异步回调与react中的表单操作连接起来
- 返回异步回调作为最佳实践
- 使用其他模块中的函数,避免异步回调地狱
- Node.js:异步回调混淆
- JavaScript中的调试技术.异步回调
- Javascript OOP-在异步回调中丢失了这一点
- 在 JavaScript 中的异步回调函数中访问“this”
- 异步回调后返回