当我解决的承诺,该功能应继续执行:无极分辨混淆
function test(){
return new Promise(resolve=>{
resolve(5)
setTimeout(()=>{console.log(7)}, 2000}
})
}
然后,我调用这样
test().then(console.log);
所以它打印5的功能,再经过2秒,它打印7,如我所料。 但是,如果我有同步的事情工作的决心(后),它的工作方式不同:
function test(){
return new Promise(resolve=>{
resolve(5)
for(let i = 0; i < 100; i++)
console.log(i)
})
}
现在,它输出数字从0到100,然后它打印5.但是我预期经过决心重返5()然后才打印所有剩下的东西。
不可以。你应该做'return resolve(5)',之后你什么都不做。否则,你为什么解决...... – yBrodsky
@yBrodsky不正确。您可以使用解析而不显式返回它。 '返回'唯一重要的是'新的承诺'。 – Andrew
关键字应该是。任何你想在解决之后继续做的事情的实例,在承诺之内? – yBrodsky