Jquery。然后连锁行为

时间:2016-08-04 09:30:22

标签: javascript jquery

我有以下函数返回一个带有Func = function () { return Func1([a, b])() .then(_.bind(function () { //something }, this)); }; 函数的函数。

.then

稍后我将另一个Func函数分配给Func2 = function(){ //something this.Func() .then(_.bind(function () { //something }, this)); }; ,如下所示:

Func1().then().then()

会不会有├─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─company │ │ │ └─app │ │ │ └─mybatisInsert.java │ │ │ ─SqlMapConfig.xml │ │ │ ─Student.java │ │ │ ─Student.xml │ │ └─resources │ └─test │ └─java └─target 或其他链?

2 个答案:

答案 0 :(得分:0)

这是promise。并且根据承诺,您可以根据自己的喜好做then! ;)

function callback() {
    console.log("then");
}

var p = new Promise(function(resolve) {
    resolve();
}).then(callback);

p.then(callback);
p.then(callback).then(callback);
p.then(callback).then(callback).then(callback);

<强> Working example.

或者就你的例子而言:

var Func1 = function(param1) {
    return new Promise(function(resolve) {
        resolve();
    });
}

var Func = function() {
    return Func1(["a", "b"]).then(function() {
        console.log("then");
    }.bind(this));
};

var Func2 = function() {
    Func().then(function () {
        console.log("then");
    }.bind(this))
    .then(function() {
        console.log("then chain");
    });
};

Func2();

<强> Working example.

答案 1 :(得分:0)

此:

Func2 = function(){
    //something
    this.Func()
        .then(_.bind(function () {
            //something
          }, this))
        }, this));
  };

无效的JavaScript。计算闭合花括号的开放花括号。所以最后一个语句会出错。如果您想要一个.then()

Func2 = function(){
//something
this.Func()
    .then(_.bind(function () {
        //something
    }, this))
    .then(someOtherFuncName)
    .then(function() {
      console.log("It's a...");
    })
   .then(function() {
      console.log("..CHAIN REEEAAACTIONNNN");
   });
};