redux saga的延迟功能不起作用

时间:2019-02-03 03:32:01

标签: 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'})
}

1 个答案:

答案 0 :(得分:5)

我怀疑这是因为最近针对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