NodeJS async.Whilst

sam*_*mol 3 asynchronous node.js

var count = 0;

async.whilst(
    function () { return count < 5; },
    function (callback) {
        count++;
        setTimeout(callback, 1000);
    },
    function (err) {
        // 5 seconds have passed
    }
);
Run Code Online (Sandbox Code Playgroud)

有没有办法让第一个函数将变量传递给第二个要处理的函数.例如:

async.whilst(
    // if EOF data will evaluate to false
    // otherwise, data will be an object
    function () { var data = processSomeDataSync(); return data },
    function (data, callback) {
        process(data)
    },
    function (err) {
    }
);
Run Code Online (Sandbox Code Playgroud)

nos*_*tio 5

向整个async.whilst调用添加一个新范围,并创建data该范围的局部变量:

(function() {
    var data = null;

    async.whilst(
        // if EOF data will evaluate to false
        // otherwise, data will be an object
        function () { 
            data = processSomeDataSync(); return data != null; 
        },
        function (callback) {
            process(data)
        },
        function (err) {
        }
    );
})();
Run Code Online (Sandbox Code Playgroud)