рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЗрдВрдЯрд░рд╡рд▓ (рдлрд╝рдВрдХреНрд╢рди () {рдЙрдкрдЬ рдХреЙрд▓ (рдПрдкреАрдЖрдИ, рдкрд░рдо)}, 1000)
рдореИрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХреИрд╕реЗ рдорддрджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдореИрдВ рдЙрдкрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛, рддреЛ рдореИрдВ рд░рд╛рдЬреНрдп рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
while (true) {
yield call(delay, 1000);
yield call(api, params);
}
рдЗрд╕ рддрд░рд╣ рджреЗрд░реА рд▓рд┐рдЦрдиреЗ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рд╣реЛрдЧреА рдХрд┐ undefind redux-saga рдХреЗ рдмрд░реНрддрдиреЛрдВ рдореЗрдВ рд╣реИ, рддреЛ dva рдХреЛ рджреЗрд░реА рдХрд╛ рдкрд░рд┐рдЪрдп рдХреИрд╕реЗ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП?
const delay = timeout => {
return new Promise(resolve => {
setTimeout(resolve, timeout);
});
};
рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдбреАрд╡реАрдП рдХреЗ рд╕рд╛рде рдкреБрди: рд╕рдХреНрд░рд┐рдп рд╣реИ, рдФрд░ рдЕрдм рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рднрд╛рдИ, рдзрдиреНрдпрд╡рд╛рдж рднрд╛рдИ рдХрд┐рдпрд╛рди
рдмрд╕ рдХреЛрд╢рд┐рд╢ рдХреА, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж @sorrycc ! ! !
@sorrycc рдкреЗрдЬ рдкрд░ рдПрдХ рдСрдкрд░реЗрд╢рди рд╣реИ рдЬреЛ рдЗрд╕ рдорддрджрд╛рди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдирдорд╕реНрддреЗ,
рдХреНрдпрд╛ рдЧрд╛рдерд╛ рдХреЗ рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХреЛрдИ рд╡рд┐рд╕реНрддреГрдд рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИрдВ? рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬреИрд╕реЗ рдорддрджрд╛рди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛, рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдирд╛, рдЖрджрд┐ред рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд╕рд░рд▓ рд╡рд┐рдзрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд░рджреНрдж рдХрд░рдирд╛, рдХрд╛рдВрдЯрд╛, рдирд╡реАрдирддрдо рд▓реЗрдирд╛ рднреА рд╣реИред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?
рдзрдиреНрдпрд╡рд╛рджред
@sorrycc рдореИрдВ рдлрд┐рд░ рд╕реЗ рдкреВрдЫрдирд╛
рдЖрдкрдХреЛ рдХрд╛рд░реНрдп рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП redux-saga рдХреЗ рдХрд╛рдВрдЯреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрдбрд╝рдиреЗ рдкрд░ рдХрд╛рд░реНрдп рдХреЛ рд░рджреНрдж рдХрд░ рджреЗрдВред
* forkInterval(actions, { fork, cancelled, put }) {
globalInterval = yield fork(function* () {
try {
while (true) {
yield delay(3000);
yield put({ type: 'youraction' });
}
} finally {
if (yield cancelled()) {
// хПЦц╢Иф╣ЛхРОчЪДцУНф╜Ья╝Мш┐ЩщЗМф╗Аф╣ИщГ╜ф╕НхБЪ
}
}
});
},
* clearInterval(actions, { cancel }) {
yield cancel(globalInterval);
},
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА