0

httpclient を別のクラスに入れ、作成されたデータの配列を返したいと考えています。マイコード

function ServiceRequest(callback){
var data = [];
var xhr = Titanium.Network.createHTTPClient({
    onload: function(e){
        //Ti.API.info("Received text: " + this.responseText);

        var doc = this.responseXML.documentElement;
        var elements = doc.getElementsByTagName("record");
        for (var r=0;r<elements.length;r++){
             var name = elements.item(r).getElementsByTagName("field").item(3).textContent;
             var monteur = elements.item(r).getElementsByTagName("field").item(15).textContent;  
             var adresse =elements.item(r).getElementsByTagName("field").item(10).textContent;
             var ort = elements.item(r).getElementsByTagName("field").item(4).textContent +" - "+ elements.item(r).getElementsByTagName("field").item(5).textContent;
             var date = elements.item(r).getElementsByTagName("field").item(8).textContent;
             var termin 
             if (date !="") {
                var arrayDate = date.split(".");
                var newdate = arrayDate[1]+"."+arrayDate[0]+"."+arrayDate[2];
                var temptermin = newdate +" - "+ elements.item(r).getElementsByTagName("field").item(9).textContent;
                termin = temptermin;
            };

            data.push({"name":name,"monteur":monteur,"adresse":adresse,"ort":ort,"termin":termin});

             callback( data );
            };

    },
    onerror: function(e){

        Ti.API.debug(e.error);
        alert(e.error);
    }
});

    xhr.open("GET","http://theurltomyxml.com",false);
    xhr.send();

}

module.exports =ServiceRequest;

初期化のコード スニペット

var ServiceRequest = require('ui/common/ServiceRequest');
request = new ServiceRequest(function(data){

});

Ti.API.info(request);

しかし、リクエストは null です。私の onLoad 関数の配列はデータで満たされています。データ配列を返すよりも、httpRequest の準備ができるまで待つにはどうすればよいですか?

4

1 に答える 1

0

このようにコールバックにカスタム関数を使用してonload : callBack、独自のコールバック関数を作成するかcallback( data );、forloop の後に配置することができます。

for (var r=0;r<elements.length;r++){//==your code here for parsing } callback( data );

于 2012-07-23T08:59:46.087 に答える