代码之家  ›  专栏  ›  技术社区  ›  Nishant Florentin

是否执行XMLHttpRequest。当我们使用承诺时,onreadystatechange仍然会在幕后被调用?

  •  0
  • Nishant Florentin  · 技术社区  · 8 年前

    假设我正在使用 Promisified 用于制作 Ajax Request ,即使 event-loop 仍然会称普通人为老人 XMLHttpRequest.onreadystatechange 正当

    我是说 承诺 是一种以顺序方式编写代码的好方法,但在幕后发生的事情仍然是普通的旧机制,对吗?有点像 class 中的语法 ECMASCRIPT 6 . 换句话说,核心API还是一样的?

    我看不出我们怎么能注册 Promise 直接发送到 事件循环 ,因为应该有一些逻辑,可以“解决”或“拒绝”,所以必须存在一个简单的包装器[也可以实现承诺,我不知道它是否会导致太多承诺]?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Quentin    8 年前

    假设我正在使用一个Promisified API来发出Ajax请求,即使这样,事件循环仍然会调用普通的XMLHttpRequest。onreadystatechange对吗?

    有几种方法可以发出Ajax请求。

    围绕XHR包装承诺的库 能够 使用 readystatechange 事件它可以使用 load 和 error 事件。

    基于promise的Ajax库可以完全避免XHR。

    它可以使用JSONP。

    fetch 在浏览器中本机支持,基于承诺,不接近XHR。

    有点像ECMASCRIPT 6中的类语法。换句话说,核心API还是一样的?

    不

    Promises是一个标准化的API,而不仅仅是用不同的语法来做与现有代码相同的事情。