异步传递变量并保留上下文
Async - passing variables and preserving context
如果您有以下代码:
var asyncConfig = {};
var a, b;
for(var i = 0; i < someValue; i++) {
// do something with a
// do something with b
asyncConfig[i] = function(callback) {
func(a, b, callback); // func is async
}
}
// Include some more parallel or series functions to asyncConfig
async.auto(asyncConfig);
- 如何将变量
a
和b
的值传递给func
,以便在for
循环后执行async.auto(asyncConfig)
时,保留a
和b
的上下文?
(每次执行func
时a
和b
的上下文不同)
提前感谢!
var asyncConfig = {};
var a, b;
for(var i = 0; i < someValue; i++) {
// do something with a
// do something with b
(function(a,b){
asyncConfig[i] = function(callback) {
func(a, b, callback); // func is async
}
})(a,b);
}
// Include some more parallel or series functions to asyncConfig
async.auto(asyncConfig);
使用bind:
var asyncConfig = {};
var a, b;
for(var i = 0; i < someValue; i++) {
// do something with a
// do something with b
asyncConfig[i] = func.bind(asyncConfig, a, b);
}
// Include some more parallel or series functions to asyncConfig
async.auto(asyncConfig);
请确保检查使用此功能的环境是否支持绑定。此外,我将"this"值绑定到asyncConfig
,这可能不适合您。
edit:再次阅读问题,a和b是原语还是对象/数组?如果它们不是原语,那么您将需要克隆它们。
相关文章:
- 将函数的上下文应用于javascript变量
- 分派点击事件并保留击键修饰符
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 使用JQuery的动态上下文菜单
- 提交后保留下拉选择的值
- Rx-subscribe方法如何在不传递上下文的情况下保留上下文
- 如何在保留当前上下文的同时设置Timeout
- 保留此内容并保留 jQuery 上下文
- 在主类中分配类的实例并保留子类实例的上下文
- 咖啡脚本 - 保留类上下文和事件上下文
- Node.js中的域-它是否保留和修改父上下文
- 重写javascript函数,同时保留原始上下文
- 保留'this'上下文
- 异步传递变量并保留上下文
- 正确的语法以保留原型的javascript上下文
- 保留分配给实例方法的变量的上下文
- 当内部函数返回时,javascript如何保留外部函数的执行上下文
- 是否可以保留对画布2d上下文的引用
- 保留eval后的上下文