«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как избежать обещаний jQuery в связанных функциях, сохраняя при этом асинхронные операции?

Как избежать обещаний jQuery в связанных функциях, сохраняя при этом асинхронные операции?

Опубликовано 6 ноября 2024 г.
Просматривать:520

How to Avoid jQuery Promises in Chained Functions While Maintaining Async Operations?

Уклонение от обещаний jQuery в связанных функциях

Несмотря на рекомендации избегать обещаний jQuery, разработчики могут столкнуться с проблемами при объединении асинхронных функций jQuery без использования jQuery механизмы обработки обещаний, такие как .then() или .when(). Чтобы решить эту проблему, рассмотрите следующий подход:

Обещания jQuery совместимы с обещаниями JavaScript. Это означает, что вы можете без проблем смешивать и сопоставлять их в своем коде. Все авторитетные библиотеки и нативные обещания принимают thenables из любой реализации. В результате в большинстве случаев вы можете писать код так, как будто все ваши промисы используют одну и ту же реализацию.

Однако, если вам нужно убедиться, что все вызовы .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 обычно не является проблемой, но если вам нужен явный контроль над реализацией, используйте подход явного приведения.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3