0
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 関数は、応答を受け取ったときにのみ実行する必要があります。

4

1 に答える 1

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);
   }
} );
于 2012-05-16T11:57:47.713 に答える