如何将变量传递回回调函数。例如,如果api调用完成,我想将其数据返回给回调函数。
我想推荐这个(如何传递 数据 变量?):
MyObject.DoItWithThis(function(***data***) {
console.log(data)
}
设置回调 - > API请求开始 - > API请求完成 - >用结果调用回调。
答案 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();