簡體   English   中英

Node.js的循環模塊

[英]Loop module for Node.js

幾分鍾前我問過循環,請參閱JavaScript中的Asynchronous for cycle

這一次,我的問題是 - Node.js有什么模塊嗎?

for ( /* ... */ ) {

  // Wait! I need to finish this async function
  someFunction(param1, praram2, function(result) {

    // Okay, continue

  })

}

alert("For cycle ended");

是不是很難將這些東西轉移到模塊中?

編輯:更新了代碼。

function asyncLoop(iterations, func, callback) {
    var index = 0;
    var done = false;
    var loop = {
        next: function() {
            if (done) {
                return;
            }

            if (index < iterations) {
                index++;
                func(loop);

            } else {
                done = true;
                callback();
            }
        },

        iteration: function() {
            return index - 1;
        },

        break: function() {
            done = true;
            callback();
        }
    };
    loop.next();
    return loop;
}

exports.asyncFor = asyncLoop;

還有一個小測試:

// test.js
var asyncFor = require('./aloop').asyncFor; // './' import the module relative

asyncFor(10, function(loop) {    
        console.log(loop.iteration());

        if (loop.iteration() === 5) {
            return loop.break();
        }
        loop.next();
    },
    function(){console.log('done')}
);

休息取決於你,不可能使這100%通用。

是的,您可以使用Async.js

Async是一個實用程序模塊,它提供了直接,強大的函數來處理異步JavaScript。 雖然最初設計用於node.js,但它也可以直接在瀏覽器中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM