2017-04-07 40 views
26

Zdaję sobie sprawę, że jest to podstawowe pytanie, ale nie miałem szczęścia znaleźć odpowiedzi w innym miejscu.Czy store.dispatch w Redux jest synchroniczny lub asynchroniczny?

Czy store.dispatch jest synchroniczna lub asynchroniczna w Redux?

Jeśli jest asynchroniczny, czy istnieje możliwość dodania wywołania zwrotnego po rozprzestrzenieniu się akcji, jak to jest możliwe z React?

Odpowiedz

24

AFAIK, akcja wysyłania jest synchroniczna. W przypadku, gdy chcesz zaadresować wywołanie asynchroniczne, możesz użyć parametru thunk-middleware w redux, gdzie wysyłanie jest dostarczane jako funkcja zwrotna, którą możesz wywołać zgodnie z twoją wygodą. Aby uzyskać więcej informacji, sprawdź tę odpowiedź na SO przez samego autora: How to dispatch a Redux action with a timeout?

18

Nikt nie wie lepiej niż code itself. =) Jak widać dispatch jest absolutnie synchroniczny. Jedynym ostrzeżeniem jest to, że sklep enhancers może (i może) zastąpić metodę dispatch. Na przykład, spójrz na at applyMiddleware enhancer, pozwala to na użycie middleware, zastępując domyślną metodę dispatch własną implementacją. Chociaż nigdy nie widziałem żadnego Reduxa enhancer, który faktycznie usunąłby synchroniczną naturę dispatch.