我试着去使用延时功能,但我得到一个错误,延迟不是一个函数。
直接从文档:
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'})
}
我怀疑这样做的原因是因为文档最近更新的终极版,传奇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