我有关于基本应用程序的控制流的简单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 –