我有这样的功能:
var api = {
getProduct : function(callback){
//code anything
//resp data
if(typeof callback == "function") callback(resp);
}
}
无论如何使用
var data = api.getProduct(function(resp){
return resp;
});
console.log(data);
我需要在回调之外做一些事情
答案 0 :(得分:-1)
我认为您正在使用网络/ AJAX, 所以请注意这个:
这是不可能的,因为你不能在一个内部使用异步调用 同步方法。
在这种情况下,您需要将回调传递给将接收foo的foo 返回值
https://stackoverflow.com/a/6847754/3119231
对于 downvoters 来说更重要的是:
从回调中返回值是没有意义的。相反,做 " FOO()"你想在回调中做的工作。
异步回调由浏览器或某些框架调用 就像事件发生时的Google地理编码库一样。没有地方 返回值。
https://stackoverflow.com/a/6847714/3119231
var api = {
getProduct: function(callback){
if (callback){
resp = "jo"; //there must be a valid response data
callback(resp);
}
}
}
强烈推荐:
var data = "nope";
api.getProduct(function(e){
//some functions or stuff you like to do with your variable
console.log("inner variable: " + e);
data = e;
})
console.log("outer variable: " + data);