es6 promise setInterval setTimeout混合使用

Question

最近在使用promise过程中突然想到如果在promise的resolve,reject中调用setInterval,会不会持续的触发resolve操作?

Answer

尝试编写下面的代码:

function a() {
    return new Promise((resolve, reject) => {
        setInterval(()=>{
            resolve('resolved')
        }, 2000)   
    })
}

a().then(res => {
    console.log(res)
});

结果resolved 只会调用一次,也就是说promise的状态当从pending到commit后,触发了对应的resolve或是reject后,就不会再次触发。

相关链接

  1. Cnode上的例子

猜你喜欢

转载自blog.csdn.net/u011077672/article/details/81201140
今日推荐