在链式异步操作中避免 jQuery Promise
建议在使用 ECMAScript Promise 时尽量减少 jQuery Promise 的使用。然而,在不使用 jQuery 的 then 或 .when 的情况下链接两个异步 jQuery 函数变得具有挑战性。
避免 jQuery Promises
当使用 Promise.resolve($.getJSON(url, params)) 可以隐藏 jQuery 承诺,它在链式操作中无效。为了避免在这种情况下使用 jQuery Promise,必须识别并显式转换您直接调用方法的所有 jQuery Promise。
JavaScript Promise 的互操作性
JavaScript Promise 是可互操作,这意味着您可以混合和匹配来自不同实现的它们。但是,为了确保使用特定的实现,您必须显式转换 jQuery Promise。
示例
考虑以下使用本机 Promise 链接两个 getJSON 调用的代码:
Promise.resolve($.getJSON("url1", params)) .then(function(data) { return $.getJSON("url2", params); }) .then(function(data) { // Process data });
在此示例中,$.getJSON 返回 jQuery 承诺。为了避免使用 jQuery 的 then 方法,我们使用 Promise.resolve 将 jQuery Promise 显式转换为原生 Promise。随后,我们可以继续使用原生 Promise 方法进行链接,确保所有 .then 方法调用都使用原生实现。
结论
通过显式转换 jQuery Promise,您可以将它们无缝集成到使用本机 ECMAScript Promise 的操作中,允许您避免 jQuery Promise,同时保持链接异步操作的能力。
以上是在链接异步 jQuery 函数时如何避免使用 jQuery Promise?的详细内容。更多信息请关注PHP中文网其他相关文章!