據我瞭解,到目前爲止,史詩的模式是「行動中,行動出」。從`Observable.fromNodeCallback`返回流時奇怪`未捕獲TypeError:未知類型返回`
我使用MeteorJS,需要遵循調用Meteor方法與服務器交互的約定。
看起來是這樣的:
Meteor.call("<function-name>", ...args, callback)
所以我儘量處理好與史詩像這樣的異步副作用:
completedSubscribe
is just an action creator:const completedSubscribe = result => {type: SUCCEED, result}
import { Observable } from 'rx'
const fromMeteorCall = Observable.fromNodeCallback(Meteor.call)
const subscriptionsEpic = action$ =>
action$.ofType(REQUEST_SUBSCRIBE)
.mergeMap(action => {
const call$ = fromMeteorCall('subscriptions.insert', action.email)
return call$.map(completedSubscribe)
})
然後我得到了錯誤:Uncaught TypeError: unknown type returned
爲了確保我的實際回報行動,
我打電話訂閱:
call$.subscribe(
function (x) { console.log('onNext: success!'); },
function (e) { console.log('onError: %s', e); },
function() { console.log('onCompleted'); }
);
那麼完美訂閱作品,
但仍史詩不能工作,並保持投擲Uncaught TypeError: unknown type returned
。
我認爲這可能不是MeteorJS的方法問題, 這可能發生在從回調創建的其他observable中。
也許我誤解了關於redux-observable
或rxjs
, 的任何意見將是非常有幫助的。