Jak zastąpić funkcje .then()/.catch() w oparciu o starą wersje?

0

Wiem jak zastąpić w Promise metody .then() i .catch() w postaci:

Promise.prototype.then=function(){}
Promise.prototype.catch=function(){}

Jak zastąpić w oparciu o starą wersje definicję funkcji .then(), i .catch() w jQuery, by wszystkie tam funkcje te zastąpiły się tam. Próbowałem różnych sposobów, ale bezskutecznie. Proszę o skuteczne przykłady...

1

Ale dlaczego chcesz to nadpisać? Chcesz wyciągnąć .then() ze starej wersji jQuery i przypisać do nowej wersji jQuery?

0
szafran98 napisał(a):

Ale dlaczego chcesz to nadpisać? Chcesz wyciągnąć .then ze starej wersji jQuery i przypisać do nowej wersji jQuery?

Bo chcę dodać dodatkowe funkcje do .then i .catch.

3
$.fn.catch = function () {
  
}

PS: Nie używaj jQuery. To samo jesteś w stanie zrobić w Vanilla JSie bez paczki ważącej więcej, niż cała strona.

0
szafran98 napisał(a):
$.fn.catch = function () {
  
}

PS: Nie używaj jQuery. To samo jesteś w stanie zrobić w Vanilla JSie bez paczki ważącej więcej, niż cała strona.

Nie chodzi mi o plagin, tylko żeby było możliwe napisanie, np.: $.when().then(function(){}), z nową wersją then.

1

No to napisałem Ci. Jeśli chodzi o co innego to lepiej sformułuj pytanie.

0
gabus napisał(a):
szafran98 napisał(a):
$.fn.catch = function () {
  
}

PS: Nie używaj jQuery. To samo jesteś w stanie zrobić w Vanilla JSie bez paczki ważącej więcej, niż cała strona.

Nie chodzi mi o plagin, tylko żeby było możliwe napisanie, np.: $.when().then(function(){}), z nową wersją then.

Chodzi mi o funkcję: $.fn.promise=function(){}, chcę napisać nowe jego metody w oparciu o jego stare metody: .done(), .then(),.catch()..

1

No to metoda .promise() jQuery zwraca instancję Promise. Nie wiem, czy to jakaś jQuerowa wariacja, czy normalna implementacja z API JSa. Musisz w takim razie nadpisać metodę .promise() i stworzyć klasę, która dziedziczy po Promise, które zwraca jQuery, a następnie zwracać swoją implementację z metody .promise() jQuery zamiast tej domyślnej. W swojej klasie możesz dodać dodatkowe metody.

0

To się wydaje bardzo złym pomysłem, to co chcesz zrobić.

0

dlaczego nie chcesz użyć składni z vanilla js z wykorzystaniem async, await, try, catch, finally?

1 użytkowników online, w tym zalogowanych: 0, gości: 1