2011-10-18 8 views
2

私はプロジェクトでExpressを使用しています。私はCradleを使用してCouchDBデータベースを試しています。パフォーマンス上の理由から、非同期実行のアイデアはクールですが、私のコードは、いくつかのデータベース呼び出しを連続して実行する必要があるルーチンにとって本当に混乱しています。クレードルの呼び出しを同期させることは可能ですか?

コールバックを使用せずにクレードルコールを行うことはできますか?または、より正確には、データベースクエリー結果を得るために、3つまたは4つの匿名関数を互いにネストすることを含まないコードを整理するためのより良い方法がありますか?コードは1つの場所でしか使用されないので、一度しか呼び出されない名前付き関数を使用するのは意味がありません。

+0

通常、非同期タスクがある場合は、Asyncモジュールを使用します。 https://github.com/caolan/asyncコードのサンプルを投稿すると、いくつかの例が得られます。 – loganfsmyth

答えて

3

コールバックを使用せずにクレードルコールを行うことはできますか?

私が知る限り、クレードルには非同期APIしかありません。

それとも、私がより正確と仮定し、単にデータベースクエリの結果を得るために 互いに内3または4匿名関数を入れ子に関与しない コードを整理する良い方法はありますか?

私が最初に何が起こっているの全体像を得るために、フロー制御トピックに関する記事を以下読むことをお勧めします:

次に、あなたは物事をシンプルにし、Node.jsの非同期コードの問題を扱ういくつかのフロー制御ライブラリを利用することができます

+0

また、http://callbackhell.com/は、非同期のjavascriptに対する素晴らしいガイドです。通常、node.jsを同期APIに強制しようとするのは悪い考えです。また、名前付き関数を1回だけ使用することにも問題はありません。たとえコードの可読性という名前の関数のためだけに価値があるとしても、 – Noah

+0

2番目のURLが変更されました。私はこれがあなたが意味するものだと思う:https://shinesolutions.com/2011/08/26/asynchronous-code-design-with-node-js/ – feka

関連する問題