使用 Firebase 侦听器时未调用生成器函数
Generator function not called when using Firebase listner
我正在使用 Firebase 和 Redux saga,并希望在 firebase 的侦听器上附加生成器,如下所示。
var ref = firebase.database().ref(`path`)
ref.on('value',function* (snapshot){
yield put({ type: 'SOME_ACTION' })
当我运行这个程序时,没有调用回调函数。如果我删除 *,它将被调用。
有什么解决方法吗?
Saga 效果并非在所有生成器中都有效。仅在 运行 中使用 sagaMiddleware.runSaga()
或使用 call
、fork
、spawn
等效果
解决您的问题的一种方法是使用事件通道,请参阅 https://redux-saga.js.org/docs/advanced/Channels.html#using-the-eventchannel-factory-to-connect-to-external-events
我正在使用 Firebase 和 Redux saga,并希望在 firebase 的侦听器上附加生成器,如下所示。
var ref = firebase.database().ref(`path`)
ref.on('value',function* (snapshot){
yield put({ type: 'SOME_ACTION' })
当我运行这个程序时,没有调用回调函数。如果我删除 *,它将被调用。 有什么解决方法吗?
Saga 效果并非在所有生成器中都有效。仅在 运行 中使用 sagaMiddleware.runSaga()
或使用 call
、fork
、spawn
等效果
解决您的问题的一种方法是使用事件通道,请参阅 https://redux-saga.js.org/docs/advanced/Channels.html#using-the-eventchannel-factory-to-connect-to-external-events