JSON响应中的回调函数

时间:2012-05-16 11:50:31

标签: javascript json

var Model= function () {

        function GetData() {    
            // Sending the request and i am getting the response. 

            JsonClientScheduleCareProvider.onload = function () {
                return this.responseText;
            };
            // error handling
            JsonClientScheduleCareProvider.onerror = function (e) {

            };
        return {
            GetApps: GetData,
        }

   }();    

在下面的代码中,我进行了JSON调用。如果我收到回复,我应该使用响应调用sendData函数。

    var jsonData = Model.GetApps();
    if (!jsonData) {
        Ti.API.warn("JsonData");
        SendData(jsonData);
    }

我面临的问题是在jsonData获得响应之前,SendData被调用。我只有在得到响应时才需要执行SendData函数。

1 个答案:

答案 0 :(得分:1)

您需要等到您的回复发送完毕。为此,请使用callback函数。

尝试这样的事情:

var Model= function () {

    function GetData( callback ) {    
        // Sending the request and i am getting the response. 

        JsonClientScheduleCareProvider.onload = function () {
            callback( this.responseText );
        };
        // error handling
        JsonClientScheduleCareProvider.onerror = function (e) {
            callback( null );
        };
    }
    return {
        GetApps: GetData,
    }

}(); 

Model.GetApps( function(jsonData){
   if (!jsonData) {
    Ti.API.warn("JsonData");
    SendData(jsonData);
   }
} );