Nach einer bestimmten Anzahl von Sekunden, wenn ein Abrufversprechen nicht aufgelöst wurde, möchte ich dem Benutzer einen Zeitüberschreitungsfehler anzeigen.Wie fügt man einem Abrufversprechen, das redux verwendet, ein setTimeout hinzu?
Ich habe einige gute Beispiele für das Hinzufügen eines SetTimeout hier holen gesehen: https://github.com/github/fetch/issues/175
Aber wie kann ich Griff ein Versprechen holen Timeout, die auch redux verwendet? Z.B.
export function getData() {
return (dispatch, getState) => {
fetch('blah.com/data')
.then(response => response.json())
.then(json => dispatch(getDataSuccess(json)))
.catch(
error => {
console.log(error)
}
)
dispatch({
type: DATA_FETCH_REQUEST
})
}
}
Danke fürs Lesen!
wow, das ist nett! wusste nicht über 'Promise.race' – amann
Wow, super, liebe diese Idee, arbeitete wirklich gut! Ich danke dir sehr! –
'fetch' ein Versprechen zurück, so dass Sie nicht ein neues Versprechen erstellen müssen: ' Anfrage lassen = holen ('blah.com/data') ... ' und dann ' Rückkehr Promise.race [ Timeout, Anfrage] ... ' – johans