Rückkehr Versprechen von Axios?
Frage ich mich, wie gebe ich ein Versprechen form Axios? Ich bin nicht sicher, ob ich ein Abfangjäger?
Ich habe diesen code jetzt
export function fetchStorage() {
return function (dispatch) {
return new Promise(function(resolve, reject) {
if (1 === 1) {
resolve('it works!');
} else {
reject(':(');
}
});
};
}
und
this.props.fetchStorage().then(function() {
console.log('then');
});
Nun sagen, ich will zu ändern, die fetchStorage etwas zu tun, was über ajax und ich hätte es gerne
var instance = axios.create({
baseURL: 'http://localhost:54690/api',
timeout: 2000,
});
instance.get('/Storage/Get')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
wie gebe ich das Versprechen, zu tun, anstatt es hier?
Bearbeiten
Nur zur Klarstellung, warum ich Tue dies, ich habe so etwas wie dieses
componentWillMount() {
this.props.setPreLoader(true);
this.props.fetchStorage().then(function() {
this.props.setPreLoader(false);
});
}
export function fetchStorage() {
return function (dispatch) {
return new Promise(function (resolve, reject) {
axiosInstant.get('/Storage/Get')
.then(function (response) {
let payload = response.data;
console.log(payload);
dispatch({ type: actions.FETCH_STORAGE, payload: { storages: payload } });
})
.catch(function (error) {
console.log(error);
});
});
};
}
- Warum nicht
return instance.get('/Storage/Get')
bin ich hier etwas fehlt? - naja ich bin mit redux Muster, also muss ich senden die Versand-und wenn ich nur zurückgeben, wie Sie Sie haben, dann ich haben immer daran zu erinnern, zu senden, dass der Versand jedes mal, wenn ich verwenden Sie diese Funktion aus.
- ich verstehe nicht, warum Sie nicht zurückkehren, die Versprechen, dass axios ist bereits was Sie.
- Meine änderung ist nun auf JokerManh Antwort. Ich hoffe, dass ich nicht brauchen, wickeln Sie es um mit diesem Versprechen, aber ich bin nicht sicher jetzt wie die Rückkehr der Verheißung nach. Was meine CompnentWillMount code aussieht, ist das, was ich erreichen will.
- Ihre
fetchStorage
Funktion nicht wieder ein Versprechen gibt es eine Funktion zurückgeben wird, ein Versprechen, wenn Sie angerufen werden.Sie können also nicht So eine Kettethen
zu. - Es sieht mehr wie ein redux stellt sich die Frage, als ein Versprechen/axios ein. Haben Sie getroffen, einen Blick auf
redux-thunk
? Ich fühle mich wie das ist, was Sie suchen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es muss einen besseren Weg, aber man konnte
Dann müssen Sie fetchStorage wie folgt
Finden Sie unter Beispiel: