如何将函数绑定到 Async.js
How to bind function to Async.js
我有以下通过内部 API.
调用的代码块
我正在尝试使用 async.js 在这里进行一些流量控制,但正如您将在下面看到的,我们失去了 "R" 的上下文。我也失去了 "this" 的内容,这是用丑陋但最简单的 "self = this" 解决方案解决的。
所以我的问题是如何将 R 绑定到 async.series?我在语法上对如何执行此操作感到困惑。
"condition": function(R) {
var self = this;
async.series([
function(R){
R.check(List.redisTables.List.negEmail, self.customer.email)
},
function(R) {
R.when(self.virtual.negEmail === "true")
}
])
},
///more code
下面是一个更容易测试的类似示例:
function getFunctions(asd) {
var arr = [];
arr.push(function(asd) {
console.log(asd)
}.bind(this, asd));
return arr
};
var funcs = getFunctions("yay");
for (var i = 0; i < funcs.length; i++) {
funcs[i]()
}
所以基本上,您需要将 R 作为参数绑定到函数。在您的情况下,它将是:
async.series([
function(R){
R.check(List.redisTables.List.negEmail, this.customer.email)
}.bind(this,R),
function(R) {
R.when(this.virtual.negEmail === "true")
}.bind(this,R)
])
我有以下通过内部 API.
调用的代码块
我正在尝试使用 async.js 在这里进行一些流量控制,但正如您将在下面看到的,我们失去了 "R" 的上下文。我也失去了 "this" 的内容,这是用丑陋但最简单的 "self = this" 解决方案解决的。
所以我的问题是如何将 R 绑定到 async.series?我在语法上对如何执行此操作感到困惑。
"condition": function(R) {
var self = this;
async.series([
function(R){
R.check(List.redisTables.List.negEmail, self.customer.email)
},
function(R) {
R.when(self.virtual.negEmail === "true")
}
])
},
///more code
下面是一个更容易测试的类似示例:
function getFunctions(asd) {
var arr = [];
arr.push(function(asd) {
console.log(asd)
}.bind(this, asd));
return arr
};
var funcs = getFunctions("yay");
for (var i = 0; i < funcs.length; i++) {
funcs[i]()
}
所以基本上,您需要将 R 作为参数绑定到函数。在您的情况下,它将是:
async.series([
function(R){
R.check(List.redisTables.List.negEmail, this.customer.email)
}.bind(this,R),
function(R) {
R.when(this.virtual.negEmail === "true")
}.bind(this,R)
])