首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么chrome-dev-tools不能在promise中正确地反映'this‘?

Chrome DevTools 无法在 Promise 中正确地反映 this 的原因是因为 Promise 的回调函数是在全局作用域中执行的,而不是在创建 Promise 的对象的作用域中执行的。这导致在 Promise 回调函数中使用 this 关键字时,它指向的是全局对象(通常是 window 对象),而不是创建 Promise 的对象。

这个问题可以通过使用箭头函数来解决。箭头函数不会创建自己的 this,而是继承外部作用域的 this。因此,在 Promise 回调函数中使用箭头函数可以正确地反映出创建 Promise 的对象的 this

以下是一个示例代码:

代码语言:javascript
复制
class MyClass {
  constructor() {
    this.name = 'MyClass';
  }

  async myMethod() {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        console.log(this.name); // 正确地输出 'MyClass'
        resolve();
      }, 1000);
    });
  }
}

const myObject = new MyClass();
myObject.myMethod();

在上面的示例中,myMethod 方法返回一个 Promise,并在 Promise 回调函数中使用箭头函数。这样,箭头函数继承了 myMethod 方法的作用域,因此可以正确地访问到 this.name

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券