redux saga的延迟功能不起作用

Tzv*_*lev 6 react-native redux-saga

我试图使用延迟功能,但出现错误,即延迟不是功能。

直接来自文档:

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

function* fetchPostsWithTimeout() {
  const {posts, timeout} = yield race({
    posts: call(fetchApi, '/posts'),
    timeout: delay(1000)
  })

  if (posts)
    yield put({type: 'POSTS_RECEIVED', posts})
  else
    yield put({type: 'TIMEOUT_ERROR'})
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*lec 10

我怀疑这是因为文档最近针对redux-saga进行了更新v1.0.0。这很重要,因为以前(在您可能正在使用的0.x版本中)它并不起作用,而只是一个帮助器。

在0.x版本中,您应该将其导入为:

import {delay} from 'redux-saga'

此延迟功能将返回一个承诺。

在1.0.0版本中,您可以按照文档中所述使用它。

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

此延迟是一个效果创建者,将返回一个效果对象。

有关v1版本的更多信息,请参见https://github.com/redux-saga/redux-saga/releases/tag/v1.0.0