javascript回调函数调用自身直到为真

时间:2013-01-23 15:54:48

标签: javascript json callback

我正在运行一个我需要继续运行的功能,直到我得到一个响应示例

exports.getJson = function(url, callback) {

    var loader = Titanium.Network.createHTTPClient();
    loader.open("GET", url);
    loader.onload = function() {
        var response = JSON.parse(this.responseText);
        callback(response);
    };
    loader.onerror = function(e) {
        callback(false);
    };
    // Send the HTTP request
    loader.send();

}

好吧我遇到的问题是它有时会给我一个null的响应,我需要它再次运行。

所以我这样称呼它。

    url = 'http://example.com/test.json';
    main.getJson(url, function(response) {
            if(response){
                addData(response);

            }else{      
//return no response i need to run the function again now until it comes back as true
            }       
    });

任何人都可以给我一个很好的方法来做到这一点,或者尝试至少3次然后返回假???

由于

1 个答案:

答案 0 :(得分:4)

只需将代码置于函数中并再次调用它:

var counter = 0;
function getData() {
    main.getJson('http://example.com/test.json', function(response) {
        if(response){
            addData(response);
        }
        else if (counter < 3) {
            counter++;
            getData();
        }   
    });
});