gpt4 book ai didi

javascript - 从 Axios 返回 promise ?

转载 作者:可可西里 更新时间:2023-11-01 02:28:15 29 4
gpt4 key购买 nike

我想知道如何从 Axios 返回 promise ?我不确定是否需要使用拦截器?

我现在有这个代码

export function fetchStorage() {
return function (dispatch) {
return new Promise(function(resolve, reject) {
if (1 === 1) {
resolve('it works!');
} else {
reject(':(');
}
});
};
}

this.props.fetchStorage().then(function() {
console.log('then');
});

现在说我想更改 fetchStorage 以通过 ajax 做一些事情,我希望它能这样

 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);
});

我如何返回 promise 而不是在这里做?

编辑

只是为了澄清我为什么这样做我有这样的东西

  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);
});
});
};
}

最佳答案

Axios 是基于 promise 的,所以你不需要用 Promise 包装它,你可以做这样的事情,和 axiosInstance.[post|put|get|结束等] 方法将返回 promise 。

export function fetchStorage() {
return function (dispatch) {
return 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);
});
};
}

关于javascript - 从 Axios 返回 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39045858/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com