Skip to content

Instantly share code, notes, and snippets.

@navarroaxel
Created March 19, 2018 14:43
Show Gist options
  • Save navarroaxel/e79582a048c3643fec8a2feee4866361 to your computer and use it in GitHub Desktop.
Save navarroaxel/e79582a048c3643fec8a2feee4866361 to your computer and use it in GitHub Desktop.
redux-saga - takeLast
export default function* root() {
yield [
fork(fetchByParams)
]
export function* handleSearch(param) {
yield call(delay, 500);
const companiesData = yield call(CompanyService.fetchByParams, param);
yield put(receiveCompaniesData(companiesData.companies));
}
export function* fetchByParams() {
let task;
while (true) {
const {param} = yield take(FETCH_COMPANIES_BY_PARAMS);
if (task) {
yield cancel(task);
}
task = yield fork(handleSearch, param);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment