簡體   English   中英

node.js等待回調

[英]node.js waiting for callbacks

我正在嘗試掌握node.js的流控制。 在下面的代碼中,我定義了一個函數,其中包含一個遞歸函數。 我想調用此“主要”功能,等待其完全完成並用console.log記錄結果。 問題是node.js的非阻塞方式。 如何設置回調以確保輸出正確?

在下面的代碼中,輸出將為空,我該如何更改? 據我所知,我必須設置一個回調,但是到目前為止我所有的努力都沒有用。

var main = function(){

    var list=[1,2,3,4];
    var value=[];

    function twotimes(i){
        if (i<list.length){
            var j=i*2;
            value[i]=j;
            twotimes(i+1); //recursive call of "twotimes"
        }
    }
    twotimes(0); //initiate the function
}

main(function(err){
console.log(value);
});

嘗試這個:

var main = function(callback){
    var list=[1,2,3,4];
    var value=[];
    function twotimes(i){
        if (i<list.length){
            var j=i*2;
            value[i]=j;
            twotimes(i+1); //recursive call of "twotimes"
        }
    }
    twotimes(0); //initiate the function
    callback(value) 
}

main(function(value){
    console.log(value);
});

暫無
暫無

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

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