0

これまでのところ、epic のパターンは「アクション イン、アクション アウト」です。

私は MeteorJS を使用しています。Meteor メソッドを呼び出してサーバーと対話するという規則に従う必要があります。

次のようになります。

Meteor.call("<function-name>", ...args, callback)

だから私は次のような叙事詩で非同期の副作用を処理しようとします:

completedSubscribe単なるアクション作成者です: 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

私が実際にアクションを返すことを確実にするために、

subscribe を呼び出そうとします:

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 のメソッドの問題ではなく、コールバックから作成された他のオブザーバブルで発生した可能性があると思います。

redux-observableまたはについて何か誤解していたかもしれませんがrxjs、どんな意見でも非常に役に立ちます。

4

1 に答える 1