从新对象回调返回值



我有以下代码

var foo = new Bar(function(callback){
    return callback  //async, use $q in angularjs
});

new Bar()有它的属性和回调。假设,属性foo.pro()也调用它,但我如何调用foo来返回回调值?

更新Bar()实际上是firebase身份验证对象代码

new FirebaseAuthClient(url, function(error, user){
  if (user) {
   console.log(user)  //if user logged in
  } else if(error) {
   console.log(error) //if login fail
  } else {
   console.log('user not login') //user not login
  }
});

这里FirebaseAuthClient也有属性FirebaseAuthClient。login()和。logout()

我认为这与firebase无关,而是与javascript有关,所以我跳过了代码。回到我的问题,我如何返回回调的值?

如果我设置一个变量为foo我可以使用foo.login()调用登录,但我可以调用其回调的返回值吗?

问题是如何返回传递给异步函数回调的内容。方法是不返回任何东西,只处理回调函数中的信息:

function Bar(callback) {
       //some code
       var xy = 1;
       callback(xy);    
}

var foo = new Bar(function (arg) {
       doSomething(arg);    
});

function soSomething(arg) {
    //...
}

现在让我们说你想有一个全局变量,你想分配你的回调函数的参数给它。在这种情况下,你可以在doSomething内部进行赋值并触发一个使用全局变量的函数:

var myVar;
function Bar(callback) {
       //some code
       var xy = 1;
       callback(xy);    
}

var foo = new Bar(function (arg) {
       doSomething(arg);    
});

function soSomething(arg) {
    myVar = arg;
    goOn();
}
function goOn() {
    //do something with myVar
}

对于异步函数的返回,这是一个错误。

最新更新