我想用redux-saga获取api数据。
下面是我如何调用api的方法:
export const getData = () => {
agent
.get(
"https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?CMC_PRO_API_KEY=XXX"
)
.then((res) => {
console.log(res.body.data)
})
.catch((err) => {
console.log(err);
});
};这是我的传奇:
import { takeLatest, put } from "redux-saga/effects";
import { delay } from "redux-saga/effects";
function* loadDataAsync() {
yield delay(500);
yield put({ type: "LOAD_DATA_ASYNC" });
}
export function* watchloadData() {
console.log("Im working buddy");
yield takeLatest("LOAD_DATA", loadDataAsync);
}问题是我真的不知道如何通过redux-saga来获取数据,我试着做研究,但是这些信息似乎都不能让我满意。你能给我一些建议吗?
发布于 2020-07-30 15:10:41
问题是我不知道如何通过redux-saga来获取数据,
不,问题是您并不真正了解javascript中的函数生成器。
无论如何,如果我要架构这段代码,我会这样做:
export function* getData(){
yield agent
.get(
"https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?CMC_PRO_API_KEY=XXX"
)
};然后:
function* loadDataAsync() {
try {
const { body: { data } } = yield getData();
console.log(data);
yield put({ type: "LOAD_DATA_ASYNC_SUCCESS" });
} catch(err) {
console.log(err);
yield put({ type: "LOAD_DATA_ASYNC_FAILED" });
}
}https://stackoverflow.com/questions/63173079
复制相似问题