为了在最近深入了解 Node 之后进行实验,我编写了一个简单的 Promise 代码,然后从命令行执行它。我看到两种输出。这是我的代码:
function doWork(){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log('done!');
resolve();
}, 1000);
});
}
然后:
1. doWork().then(function(){
return doWork();
}).then(function(){
console.log('that\'s it');
});
Output :
done!
done!
that's it!
另一种方式:
2. doWork().then(function(){
doWork();
}).then(function(){
console.log('that\'s it');
});
Output:
done!
that's it!
done!
为什么当我不返回
或返回
时输出会发生变化?
最佳答案
Promise 通过返回值起作用。当您不返回
时,链不知道在继续处理链中的下一个处理程序之前要等待第二个doWork
。
关于javascript - promise 以不同的方式执行时显示不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34045848/