我正在通过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