尽管建议避免 jQuery Promise,但开发人员在不使用链式异步 jQuery 函数时可能会面临挑战jQuery 的承诺处理机制,如 .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 承诺通常不是问题,但如果您需要对实现进行显式控制,请使用显式转换方法。
以上是如何在维护异步操作的同时避免链式函数中的 jQuery Promise?的详细内容。更多信息请关注PHP中文网其他相关文章!