我正在使用redux saga来处理React本机应用程序中的api调用。这是使用axios时设置sagas的方式:
function* getList(){
try{
response = yield call(axios.get,'https://example.com/list');
yield put({type:'LIST_RESULTS',data:response.data});
} catch(err){
console.log(err);
}
}
...
function* rootSaga(){
yield takeLatest(types.GET_LIST,getList);
...
}
该调用获取大约700kbs的数据。 调度此动作后,所有可触摸对象均不会响应,并且一旦收到响应,就将批量触发在请求进行过程中调用的所有事件。
与提取一起使用时,相同的api请求没有相同的问题。 这是使用提取时的代码
function* getList(){
try{
response = yield call(fetch,'https://example.com');
data = yield call(getJson,response);
yield put({type:'LIST_RESULTS',data});
} catch(err){
console.log(err);
}
}
async function getJson(data){
return new Promise((resolve,reject)=>{
data.json().then(result=>{
resolve(result);
}).catch(err=>{
reject(err);
});
});
}
有人可以帮我调试这里的问题吗?