當我解決的承諾,該功能應繼續執行:無極分辨混淆
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