等待一个redux-saga

Ben*_*Ben 5 javascript ecmascript-6 redux-saga

我想在传奇中引入延迟(使用redux-saga).

我怎样才能做到这一点?

如果redux-saga提供了API,我也会对如何手动实现它感兴趣.

function* save({ payload }) {
    yield put(pending());
    // I want to simply wait (non-blocking) here for say 2 seconds
    yield put(complete());
}
Run Code Online (Sandbox Code Playgroud)

Cle*_*ton 12

Redux-sagas对此有特殊效果:

延迟(ms,[val])

返回一个Promise,它将在ms毫秒后用val解析.

例:

import { delay, call } from 'redux-saga/effects'

function* someSaga(input) {
  yield put(someAction())
  yield delay(500)
  yield put(anotherAction())
}
Run Code Online (Sandbox Code Playgroud)

  • 不要写“yield call(delay, 5000)”,其中延迟是“redux-saga/effects”的效果,而应该写“yield delay(5000)”(引用我的控制台错误:)) (2认同)