尽管建议避免 jQuery Promise,但开发人员在不使用 jQuery 的情况下链接异步 jQuery 函数时可能会面临挑战Promise 处理机制,如 .then() 或 .when()。为了解决这个问题,请考虑以下方法:
jQuery Promise 可以与 JavaScript Promise 互操作。这意味着您可以在代码中混合和匹配它们而不会出现问题。所有信誉良好的库和本机 Promise 都接受来自任何实现的 thenables。因此,在大多数情况下,您可以像所有的 Promise 都使用相同的实现一样进行编码。
但是,如果您需要确保所有 .then() 调用都使用您的首选实现或实现非标准功能,必须显式地强制直接调用方法的所有承诺。例如:
Promise.all([$.ajax(...), $.ajax(...)]) // Just works (native `then`)
$.ajax(...) // jQuery promise Promise.resolve($.ajax(...)) // Explicit cast .then(function(data) { // Native `then` return $.ajax(...); // Just works }) .catch(...) // Use features of native promise
记住,混合 jQuery 和 JavaScript Promise 通常不是问题,但如果您需要对实现进行显式控制,请使用显式转换方法。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3