【发布时间】:2018-05-09 18:25:05
【问题描述】:
function goodFun(){
console.log('this is good fun');
}
function badFun(){
console.log('this is bad fun');
}
const promise = new Promise(goodFun , badFun);
console.log(promise); // status , pending
promise.then(); // resolved
console.log(promise); // status , still pending !!! how ???
promise.then(); // running same promise twice
输出:
this is good fun
Promise { <pending> }
Promise { <pending> }
一旦我解决了这个承诺,它仍然显示它处于待处理状态。第二次,它没有打印“goodFun”的内容,有人可以帮助我吗,我错过了什么?
更新: 而且, 第一个 console.log(promise) 的输出是在 promise.then() 之后?这也令人困惑?为什么会这样?它应该先打印控制台输出,然后再打印 promise.then()。
【问题讨论】:
-
谢谢@T.J.Crowder,请阅读更新版本。我不知道为什么 consoleLog 在 promise.then() 之后打印?有什么解释吗?
-
因为调用
then并不能解决承诺。同样,我建议您阅读一些教程并研究文档和示例。
标签: javascript promise