дорогой вызов API с осязаемыми блоками axios блокирует, но не с fetch в реакции native и Redx-Saga - PullRequest
0 голосов
/ 30 октября 2018

Я использую Redux Saga для обработки вызовов API в собственном приложении. Вот как саги настраиваются при использовании axios:

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

Вызов получает данные около 700 КБ. Когда отправляется это действие, ни одно из сенсорных элементов не отвечает, и как только ответ получен, все события, вызванные во время выполнения запроса, запускаются в пакетном режиме.

Тот же запрос API, когда используется с fetch, не имеет той же проблемы. Вот код при использовании fetch

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

Может кто-нибудь помочь мне отладить, в чем здесь проблема?

...