Tengo una función saveTrip que es un procesador asíncrono redux. Sin embargo, tengo un comportamiento muy extraño ya que solo mi primera promesa se resuelve como "cumplida" y todas las promesas posteriores se "rechazan".
export const saveTrip = createAsyncThunk( 'trip/saveTrip', async (payload, thunkAPI) => { const trip = thunkAPI.getState().trip const result = await fetch( 'http://localhost:5000/savetrip', { mode: 'cors', credentials: 'include', method: "post", body: JSON.stringify({ trip }), headers: { 'Content-Type': 'application/json' }, }) const response = await result.json() return response } )Lo que es más inusual es que me topé con una solución curita al implementar el rebote de esta manera:
export const saveTrip = createAsyncThunk( 'trip/saveTrip', debounce(async (payload, thunkAPI) => { const trip = thunkAPI.getState().trip const result = await fetch(...) const response = await result.json() return response }, 5000) )Debounce en realidad no "funciona" como esperaba, pero ahora, cada promesa se cumple con los datos esperados en las respuestas. Estoy bastante seguro de que esta no es una solución adecuada, pero estoy muy confundido en cuanto a lo que está sucediendo.
Mi objetivo es simplemente guardar mi state actual en mi base de datos y simplemente llamo a saveTrip cada vez que se envía un reductor que cambia mi state .