使用等待jQuery AJAX方法是否安全

时间:2018-02-05 08:18:24

标签: javascript jquery ajax es6-promise jquery-deferred

jQuery 3延迟对象为supposed to be Promises/A+ compatible。从this question开始,似乎TypeScript编译器会因此而对你大喊大叫。但是这段代码使用最新版本的jQuery和TypeScript编译得很好:

import $ from 'jquery';

(async () => {
    const response = await $.getJSON('https://api.github.com/');
    console.log(response);
})();

According to MDN

  

如果await运算符后面的表达式的值不是Promise,则会转换为resolved Promise

考虑到表达式应该已经返回Promise,我在这里看不到问题。

  1. 这是否意味着将await$.ajax(以及getJSONpost等朋友一起使用)是安全的?或者是否存在代码失败的情况?
  2. 为什么可以将Promise.resolve()包装在一个不符合Promises / A +的jQuery 2延迟对象中,使其成为真正的Promise,但是await依赖于jQuery 2延迟对象会失败吗?
  3. 我已经提到了上面的TypeScript示例,但我在JavaScript的一般上下文中提到了这个问题。如果TypeScript编译器处理await的方式与Node.js / Babel / browsers在JavaScript中处理它的方式有所不同,请详细说明您的答案。

0 个答案:

没有答案