我正在使用Firebase和Redux saga,并希望在firebase的监听器上附加生成器,如下所示。
var ref = firebase.database().ref(`path`)
ref.on('value',function* (snapshot){
yield put({ type: 'SOME_ACTION' })
当我运行此程序时,不会调用回调函数。如果我删除*,它将被调用。 有没有解决方法呢?
答案 0 :(得分:1)
Saga效果在所有发生器中都不起作用。仅适用于使用sagaMiddleware.runSaga()
或使用call
,fork
,spawn
等效果的广告。
解决问题的一种方法是使用事件频道,请参阅https://redux-saga.js.org/docs/advanced/Channels.html#using-the-eventchannel-factory-to-connect-to-external-events