我正在调用一个返回承诺的方法a
,在其中我调用了一个执行某些操作并更新计数变量的方法。我希望所有的承诺在计数完成后都能完成,但是它在达到值10后没有停止。
var count = 0;
function a(p){
return new Promise((resolve, reject) =>{
console.log(count);
if(count == 10) {console.log('sdfsdfsd'); resolve(Date.now()); }
callee().then(() => { count++; a(); } )
})
}
function callee(){ return new Promise((resolve) => resolve())}
a(1).then((res) => console.log(res)).catch((res) => console.log(res));
Promise
构造反模式!callee
应该是唯一使用new Promise
的函数。 - Bergicallee
中执行。重点是a
不应该使用new Promise
- 参见 @adz5A 的可行答案。 - Bergi