【发布时间】:2019-11-09 17:05:42
【问题描述】:
我正在尝试使用 promise 和 while (JavaScript/Node.js) 依次重复执行多个进程。 但是,promise 函数没有被执行(即所有的 console.log() 都不会显示)。
为什么promise函数在while中从来没有执行过?
另外,如何按顺序重复显示一些console.log()?
var count = 0;
while(count < 5) {
Promise.resolve()
.then(function () {
return new Promise(function(resolve, reject) {
console.log('func1()...');
resolve('OK');
});
})
.then(function(value) {
return new Promise(function(resolve, reject) {
console.log('func2()...');
resolve('OK');
});
})
.then(function (value) {
console.log('func3()...');
count++;
}).catch(function (error) {
console.log(error);
});
}
【问题讨论】:
-
您的
count++;异步执行,您的while只是永远循环。 -
你不能。查看 Promise.all 或 async/await 语法。
-
@tkausl promise函数是通过在promise函数后面写count++来执行的。谢谢你。但是,每个console.log()都会连续执行5次。我想这样跑。 console.log(func1()...)→console.log(func2()...)→console.log(func3()...)→console.log(func1()...)→.. .
标签: javascript node.js loops synchronous