2017-08-22 5 views
1

Pouvez-vous me donner des conseils sur la meilleure façon de passer ma réponse d'un concentrateur signalR à un appel de fonction qui avait un rappel? J'ai essayé une variable globale pour stocker le rappel et l'appeler recevoir des données mais pas de chance. voici ce que j'aime faire;signalr réponse asynchrone callback javascript

school.lib.setmytime = function(_time){ 

console.log('mytime is :' + _time); 
} 

school.lib.gettime = data.getservertime(school.lib.setmytime); 

var myhub; 

data.connection = function(){ 
    $connection.hub.url = 'http://myserver.com:65442'; 
    $connection.hub.start(); 

    myhub = $.connection.adminHub; 

    myhub.client.getServerTime = function (_time){ 
     //How do i access the callback 
     //function in data.getservertime so as to return time to the 
     //school.lib.gettime? 
    } 

} 

data.getservertime = function(callbak){ 

    myhub.server.getServerTime(); 

} 

Répondre

0

Compte tenu de votre conception actuelle, il semble que vous devez passer votre rappel à la méthode getServerTime:

myhub.client.getServerTime = function (callback){ 
    //How do i access the callback 
    //function in data.getservertime so as to return time to the 
    //school.lib.gettime? 

    // after you have retrieved the time 
    if (typeof callback === 'function') { 
     callback(school.lib.gettime); 
    } 
} 

... 

data.getservertime = function(callback){ 
    myhub.server.getServerTime(callback); 
}