如何将函数绑定到 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)
])