2016-04-05 17 views
2

CycleJSの新機能で、HTTPドライバからデータを読み込もうとしています。私は以下を持っています:

最初のリクエストは単純なGETです。

const initialRequest$ = Observable.just({url: ...}); 

いくつか撮影したユーザの意図に基づいて、私は私のモデルを更新して作成(または少なくとも作成しよう)リモートデータを更新するPATCHリクエストを。

const patchRequests$ = intent$ 
    .withLatestFrom(model$, (intent, model) => { 
     const payload = ... // get payload from model and intent 
     return { 
      url: `my/url/${target}`, 
      method: 'PATCH', 
      send: { 
       // payload... 
      }, 
     }; 
    }); 

は、その後、私は一緒にストリームをマージ:

const request$ = Observable.merge(initialRequest$, patchRequests$); 

とHTTPドライバにrequest$を返します。

私の最初のリクエストはうまくいき、HTTPソースストリームでデータを取得します。しかし、パッチは決して発射されません。

は、私のようなものでrequest$を購読することができます:

request$.subscribe((req) => console.log(req)); 

そして私は私の最初のリクエストとパッチ要求はすべてのコンソールにログインして表示されます。しかし、依然としてパッチ要求は送信されません。

私はここで間違っていますか?

ありがとうございました。

答えて

3

eager: trueにリクエストオブジェクトのプロパティの1つを指定します。それ以外の場合、HTTPドライバは、アプリケーションで対応する応答$を待たない要求を無視します。

これはCycle.jsの将来のバージョンで変更されますが、すべてのリクエストは熱心になり、この問題は発生しません。

関連する問題