Sim*_*onD 0 javascript promise
我想更深入地了解promises如何在JavaScript中工作并尝试下一个代码:
function delay(timeout) {
return new Promise(function(resolve, reject){
setTimeout(resolve,timeout);
});
}
var promise = delay(10000);
promise.then(alert('after delay'));
Run Code Online (Sandbox Code Playgroud)
我想为JS setTimeout()函数编写一个包装器,我假设警报在执行此代码后10秒后出现,但它立即显示,有人可以解释这里有什么问题吗?
Run Code Online (Sandbox Code Playgroud)promise.then(alert('after delay'));
在这里你:
alert()then()所以承诺不会立即解决.你alert才解决它.
你必须通过一个函数来then.
promise.then(alert.bind(window, 'after delay'));
Run Code Online (Sandbox Code Playgroud)
小智 5
添加function到您的then声明中:
promise.then(function(){
alert('after delay')
});
Run Code Online (Sandbox Code Playgroud)