Obszar poza metodą success w metodzie ajax

0

Ten obszar w metodzie ajax poza metodą ajax nie wiadomo kiedy się wykona? Więc lepiej jeśli coś zmieniamy dawać to w metodze success w metodzie ajax?

0

Wszystko wiadomo, kiedy się wykona. W success/done w momencie otrzymania poprawnej (i asynchronicznej) odpowiedzi z serwera. Jesli potrzebujesz zareagować na otrzymanie tych danych, to tylko w success/fail/complete, bo przecież nie wiesz, kiedy dane przyjdą, więc nie możesz na nie po prostu poczekać. Możesz tylko ustawić funkcję, która będzie wywołana.w momencie przyjścia odpowiedzi.
Jeśli nie potrzebujesz tych danych ani też czekania, aż serwer coś zrobi, to robisz to w dowolnym momencie przed albo po zakolejkowaniu wykonania żądania ajax.

BTW nie ma czegoś takiego jak "obszar poza metodą success". Kod nie będący funkcją wywoływaną do obsługi odpowiedzi serwera nie ma z żądaniem ajax nic wspólnego.

0

A jeśli w metodzie success przypisuje jakieś dane asynchroniczne i po tym w tej metodzie success wywołam kolejną metodę asynchroniczną to ona wykona się po tej pierwszej?

0

Pewnie tak, zależy jaki przypadek masz na myśli. Prymitywny przykład z callbackami:

const obj = {
  method1 (callback) {
    setTimeout(callback, 500, 1)
  },
  method2 (callback) {
    setTimeout(callback, 500, 2)
  }
}

obj.method1(result => {
  console.log(result)
  obj.method2(result => {
    console.log(result)
  })
})

CodePen: https://codepen.io/caderek/pen/eyvLeo?editors=0012

Ogólnie to nie zgaduj tylko poczytaj, bo to podstawa JSa.

0
Tygrys Biały napisał(a):

A jeśli w metodzie success przypisuje jakieś dane asynchroniczne i po tym w tej metodzie success wywołam kolejną metodę asynchroniczną to ona wykona się po tej pierwszej?

Jakim cudem mogłaby wykonać się wcześniej?

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