sto provando a catena più azioni insieme nel modo seguente:concatenamento multiplo invio asincrono in Redux
dati utente A. posta alla base di dati
B. utilizzo pubblicati i dati per interrogare elasticsearch per i risultati
(Faccio A e B in parallelo)
B1. con i risultati di ES, query database originale per i risultati di due tabelle B2. dirige verso nuova pagina e aggiornamento dell'interfaccia utente
sto usando thunk in questo momento per ragionare sul mio codice, ma ho trovato anche questo modello asincrono di essere estremamente verbose:
export function fetchRecipes(request) {
return function(dispatch) {
dispatch(requestRecipes(request))
return fetch(url)
.then(response => response.json())
.then(json => dispatch(receiveRecipes(request, json))
)
}
}
questo, insieme a "requestRecipes" e "receiveRecipes" come altri creatori di azioni sembra un bel po 'solo per fare una chiamata asincrona. (una richiesta, una ricezione e una funzione di recupero)
sommario: quando si concatenano 2-3 azioni asincrone le cui uscite dipendono l'una dall'altra (ho bisogno di promettere quando possibile), esiste un mezzo più efficiente di farlo senza scrivere 3 funzioni per ogni chiamata asincrona?
Immagino che ci debba essere un modo. Sto cercando di abbinare i documenti di Redux e presto sono stato sopraffatto dalle funzioni che stavo creando
grazie mille per il feedback!
Io uso questo modello; ci sono molte funzioni, ma puoi anche creare una fabbrica che creerà tutte queste funzioni una volta sola all'avvio della tua app. Ad esempio, vedi [questo middleware] (https://github.com/erikras/react-redux-universal-hot-example/blob/master/src/redux/middleware/clientMiddleware.js) nel react-redux-universal -hot-example (Trovo molta ispirazione da vari pattern in quel repository di esempio). Allo stesso tempo, non lo rivendico come l'unico vero modo di usare Redux nel contesto delle azioni asincrone; Sarei curioso di vedere altre risposte qui. – mjohnsonengr