Mit*_*Ius 3 javascript setinterval promise
我试图理解承诺是如何运作的
let promise = new Promise( (resolve, reject) => {
alert("started");
let num = 0;
let interval = setInterval(() => {
alert(`state ${num}`);
num += 2;
if (num > 4) {
clearInterval(interval);
alert("finished");
resolve()
}
}, 1000)
});
promise.then(alert('resolved'))
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我立即看到警报started,resolved
然后间隔 1 秒state 0、、state 2和state 4。
为什么 Promise 会立即解决?如何防止 Promise 在直接执行之前被解析?finishedresolve()
.then接受函数作为参数,而不是普通语句或表达式(除非所述表达式计算结果为函数)。使用这个代替:
promise.then(() => console.log('resolved'))
Run Code Online (Sandbox Code Playgroud)
演示:
promise.then(() => console.log('resolved'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3965 次 |
| 最近记录: |