【前端调试】Promise.then返回值与断点调试

在B站上看了一个Promise教程,里面用到了断点的方法,之前没有接触过,故记录。下面是一段简单的Promise示例代码

const p = new Promise((resolve, reject) => {
      if(true)
        resolve("成功")
});
console.log("(1).p是", p);
const pthen = p.then((res)=>{
  console.log("(2).p的结果:", res)
}, (err) => {
  console.log("p的结果:", err)
});
console.log("(3).p.then返回的结果:", pthen)

Promise对象的then方法返回的还是一个Promise对象,每个Promise对象都有State属性和Result属性。上面这段代码的执行结果是:

执行结果

可以看出.then是异步执行的,但是这里打印的Promise状态是“fulfilled",此处还没有弄明白。

使用断点可以帮助我们看到程序运行的步骤:

在这里插入图片描述

运行到16行停下,点击step into next function call进入下一个断点,检查pthen可以看到:

在这里插入图片描述

状态是“pending”,也就是说.then方法返回的是一个pending状态的新的Promise实例。
理解不够深入,如果有人了解为什么控制台上的输出结果是fulfilled,请多多指教:)

相关文章

最后的控制台返回空数组.控制台在ids.map函数完成之前运行va...
我正在尝试将rxJava与我已经知道的内容联系起来,特别是来自J...
config.jsconstconfig={base_url_api:"https://douban....
我正在阅读MDN中的javascript,并且遇到了这个谈论承诺并且不...
config.jsconstconfig={base_url_api:"https://douban....
这是我的代码main.cpp:#include<string>#include<...