2017-08-22 1 views
1

Bitte beraten Sie auf dem besten Weg, um meine Antwort von einem SignalR Hub zu einem Funktionsaufruf, der einen Rückruf hatte. Ich habe versucht eine globale Variable, um den Rückruf zu speichern und rufen Sie auf Daten erhalten, aber kein Glück. hier ist, was ich gerne mache;signal async response javascript callback

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(); 

} 

Antwort

0

Ihr aktuelles Design gegeben, es sieht aus wie Sie Ihren Rückruf an den getServerTime Methode übergeben sollte:

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); 
}