我正在尝试使用延迟功能,但我收到一个错误,即延迟不是功能。
直接从文档中获取:
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'})
}
答案 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