循环完成后如何返回回调

时间:2015-05-07 19:28:20

标签: javascript

我有一个解决方案,我在彼此内部有2个循环,它看起来像这样:

function myFunc(types, pages, callback) {
    var pageResults = [];
    for (var i = 0; i < types.length; i++) {
        var type = types[i];
        for (var j = 1; j < pages; j++) {
            getBikes(type, j, function(err, results, settings){
                if(err) throw err;
                var obj = {
                    results: results,
                    settings: settings
                };
                pageResults.push(obj);
            });
        };
    };
    return callback(pageResults);
});

var types = ["string1", "string2", "string3", "string4"];
var pages = 15;
myFunc(types, pages, function(pageResults){
    console.log("done");
});

但是这会立即结束它在类型循环中的1个循环之后返回,并且如果我记录我从内部函数返回而没有返回回调的obj,它将一直运行。

是的getBikes是一个类似于ajax的异步调用,但是在nodejs中,有一个名为request.js的模块

1 个答案:

答案 0 :(得分:-1)

您无法返回回调值,但可以调用回调函数,如下所示

return 0 != $this->getRow()->discountPercent;