我開始一個定時器秒錶陣營組件時,啓動操作被分派:取消傳奇時的動作與終極版 - 傳奇派出
import 'babel-polyfill'
import { call, put } from 'redux-saga/effects'
import { delay, takeEvery, takeLatest } from 'redux-saga'
import { tick, START, TICK, STOP } from './actions'
const ONE_SECOND = 1000
export function * timerTickWorkerSaga (getState) {
yield call(delay, ONE_SECOND)
yield put(tick())
}
export default function * timerTickSaga() {
yield* takeEvery([START, TICK], timerTickWorkerSaga)
yield* takeLatest(STOP, cancel(timerTickWorkerSaga))
}
/*
The saga should start when either a START or a TICK is dispatched
The saga should stop running when a stop is dispatched
*/
我有麻煩停止撒加當STOP
行動出動從我的組件。
if(yield(take(STOP)) {
yield cancel(timerTickWorkerSaga)
}
以及在第一代碼塊,我試圖阻止從觀看服務撒加的辦法:我一直在使用從我的工人傳奇中cancel
和cancelled
效果嘗試。
正如你可能已經懷疑的可讀性,我一直忽略了ES6發電機,感謝您的答案和有用的資源。 – vamsiampolu