我正在通過YDKJS和審查承諾章節。爲什麼我們不能自己返回timeOut而不是創建新的Promise?
在本節中,它顯示我們如何才能增加同步到正在發生的事情,當時:
var p = Promise.resolve(21);
p.then(function(v){
console.log(v); // 21
// create a promise to return
return new Promise(function(resolve,reject){
// introduce asynchrony!
setTimeout(function(){
// fulfill with value `42`
resolve(v * 2);
}, 100);
});
})
.then(function(v){
// runs after the 100ms delay in the previous step
console.log(v); // 42
});
它接着說:「這是令人難以置信的強大現在我們可以構建的然而,許多異步的一系列步驟!我們希望,並且每一步都可以根據需要推遲下一步(或不!)。「
但爲什麼需要創建新的Promise
?爲什麼我們不能只返回setTimeout
?當然,它只會在超時執行後纔會執行?或者說,整個問題不是?
@Pointy,no,setTimeout返回一個標識符,它可以在clearTimeout中使用。 –
@YuriyYakym當然哦;需要更多的咖啡我想:) – Pointy