2016-03-23 9 views
0

rxjsのハングアップが実際に発生していますが、どこから開始するのか分かりません。これは私がしたいことです。Rxjsでハンドルを取得しようとしていますが、このようなことをどうすればいいのですか?

  1. 使用fsはディレクトリを読んで、そこ

  2. ファイル名を指定して実行時に1つのファイルを解析し、MySQLのINSERT文を構築しますいくつかの機能のすべてのファイルを取得するには

  3. その文を実行して成功したら、別のファイル(またはこれらのうちの約10個を同時に実行することをお勧めします)をもう一度起動してください。

私の思考プロセスファイル配列から観測可能なストリームを作成し、サブスクリプションに挿入を実行させます。しかし、どうやってそれを一つずつ進めて、前回の挿入が成功するまで待ってください。それに加えて、これらの10個を同時にどのようにしていますか?誰か私に正しい方法を指示できますか?

+1

rxjs docsで始めるには、そこで学ぶためのリソースがたくさんあります。いくつかの例を詳しく説明している記事へのリンクを見つけて、いくつかのコードを書いてみてください(あなたは思考プロセスを持っています。いくつかのデバッグを試してみてください。あなたが特定の質問をしているときには、あなたと非常に似ているものを含めて、ここで多くの問題が既に詳述されています。解決策が見つからない場合は、ここに問題を返信してください。 – user3743222

答えて

1

rxjsは非同期コードを管理する優れたツールです。並行処理や非同期処理が確実に必要な場合を除いては、手続き型プログラミングや関数型プログラミングを使用してrxjsをそのまま残しておきます。

これは、ファイルを読み込んで処理してから、非同期処理の一部またはすべての部分を処理する非同期処理を必要とするユースケースがあります。

あなたは(().nextとファイル名を観測可能なストリーミングを書き込み、またはその内容に、その後.MAP()ファイル名、そして.MAPをObservable.of(arrayOfFileNames)を使用することができます)を生成SQLクエリに、.subscribe()をこのSQLクエリのストリームに追加して、各SQLクエリを実行します。チェーン内の点でrxjsで処理

エラー(.subscribeのエラー部分(第2パラメータ)をトリガする)コールまたは鎖中.ERROR()ことがキャッチすることができます。ただし、エラーの可能性があるチェーンの部分を分離しない限り、エラーはエラーのすべての部分を破棄し、そのエラーをサブスクライバに転送するだけです。その後、チェーン全体が明確な隔離なしに最初のエラーで死ぬ。

注私は、具体的rxjsのみ非同期コードを管理するための優れたツールであると述べているにもかかわらず、デフォルトでは、rxjsは同期スケジューラを使用し、チェーンとサブスクリプションは仕方「ブロッキングに」起こること。たとえば、Observable.of()の最後のパラメータとして追加することで、別のスケジューラを選択できます。

関連する問題