如何将变量传递回回调函数

时间:2017-02-26 23:28:02

标签: javascript ecmascript-6

如何将变量传递回回调函数。例如,如果api调用完成,我想将其数据返回给回调函数。

我想推荐这个(如何传递 数据 变量?):

MyObject.DoItWithThis(function(***data***) {
     console.log(data) 
}

设置回调 - > API请求开始 - > API请求完成 - >用结果调用回调。

2 个答案:

答案 0 :(得分:0)

最简单的方法是,如果你只需要传回一件,就是从函数中返回该值。

但是,您的调用代码必须知道该返回类型并使用它才能使其正常工作。

function callee( data ){
   if (data == null)
      return false;
   doStuffWith( data );
   return true;
}

function caller( callback ){
    var nonNull = "abc";
    if (callback( nonNull )){
        doSomeOtherStuff();
    }
}

caller( callee );

答案 1 :(得分:0)

我已用ES6以下列方式解决了这个问题:

观看它的实际操作:http://codepen.io/anon/pen/vxOGve

class Test {
    constructor() {
        this.callback = function (data) {
            console.log(data)
        };
        for (var i = 0; i < 50; i++)
            if (this.callback && typeof this.callback === "function") {
                this.callback("lol");
            }
    }

    // for example
    set Callback(callback) {
        this.callback = callback;
    }
}

var test = new Test();