我有關於基本應用程序的控制流的簡單noob問題。我有3個與setTimeout函數裏面。簡單的node.js應用程序控制流程
console.log("[+] Program start");
function first(){
setTimeout(function(){
console.log(1);
},3000);}
function second(){
setTimeout(function(){
console.log(2);
},2000);}
function third(){
setTimeout(function(){
console.log(3);
},1000);}
first();
second();
third();
console.log("done");
輸出爲預期這樣的:
[+] Program start
done
3
2
1
我想控制流量,我會看到下列順序的事情:
[+] Program start
1
2
3
done
所以我通過以下方式重寫程序:
console.log("[+] Program start");
function first(){
setTimeout(function(){
console.log(1);
second();
},3000);}
function second(){
setTimeout(function(){
console.log(2);
third();
},2000);}
function third(){
setTimeout(function(){
console.log(3);
call();
},1000);}
first();
function call(){console.log("done ");}
輸出是:
[+] Program start
1
2
3
done
現在輸出沒問題了,我想問你,這個方法是對的嗎?這正確的方式如何控制流量或如何在node.js中寫入?或者我完全錯誤的方式。你能否請檢查一下,給我一些提示,建議等。非常感謝你的幫助。
爲什麼你要使用的setTimeout?你想做什麼?告訴我們更多關於你的問題。沒有這個,你的問題太寬泛,無法給你一個有效的答案 –
你做什麼是很奇怪的,至少可以說。對於一般的異步事情,結帳:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise –