我们假设我使用Promisified
API制作Ajax Request
,即使这样,event-loop
仍然可以调用普通的XMLHttpRequest.onreadystatechange
吗?
我的意思是 Promisfying 是一种以顺序风格编写代码的好方法,但是在幕后发生的事情仍然是普通的旧机制吗?有点像class
中的ECMASCRIPT 6
语法。换句话说,核心API仍然相同?
我无法看到如何将Promise
直接注册到event-loop
,因为应该有一些逻辑可以解决"或者"拒绝",所以一个简单的包装器必须存在[也可以实现一个承诺,我不知道它是否会导致过多的承诺]?
答案 0 :(得分:2)
让我们说我使用Promisified API来制作Ajax请求,即使这样,事件循环仍会调用普通的旧XMLHttpRequest.onreadystatechange吗?
有几种方法可以发出Ajax请求。
围绕XHR 包裹承诺的库可以使用params
事件。它可以使用readystatechange
和load
个事件。
基于承诺的Ajax库可以完全避免XHR。
它可以使用JSONP。
浏览器本身支持 error
,基于承诺,并且不会接近XHR。
有点像ECMASCRIPT 6中的类语法。换句话说,核心API仍然是相同的?
没有
Promise是一种标准化的API,不仅仅是与现有代码完全相同的语法。