Redux Saga Delay заканчивается раньше времени - PullRequest
1 голос
/ 06 августа 2020

Я не могу понять эффект задержки в Саге. Это кажется простым, но мне не подходят сроки. Это проект React Native.

import {take, race, delay} from 'redux-saga/effects';
...
function* letsRace(retryTimeout) {
    const startTime = Date.now();
    const {resolved, timedout} = yield race({
        resolved: take('HAPPY_TIMES'),
        timedout: delay(retryTimeout),
    });
    if (resolved) {
        console.log(`[CBlock] : Good : ${Date.now() - startTime} / ${retryTimeout}`);
    }
    if (timedout) {
        console.log(`[CBlock] : Bad : ${Date.now() - startTime} / ${retryTimeout}`);
    }
}

Журналы:

[CBlock]: Плохо: 4028/5000

[CBlock ]: Плохо: 7045/8000

[CBlock]: Плохо: 16/800

Независимо от указанной мной задержки, задержка заканчивается примерно на одну секунду рано. Если задержка меньше одной секунды, кажется, что он срабатывает почти мгновенно.

Версии:

"react-redux": "^7.1.1",
"redux": "^4.0.4",
"redux-saga": "^1.1.1"
"react": "16.11.0",
"react-native": "0.62.2"
...