特定のクエリを実行して応答を解析するために使用されるmain関数があります。その関数の最初のステップは、その関数に与えられたパラメータを検証することです。それから私は、クエリを生成し、署名し、それを送信します。最後に、私は応答を処理します。NodeJSは、連鎖同期と非同期関数を結合します
クエリを送信するために、私は約束パターンを使用したいと思います。私が望むのは、主な機能が約束を返すということです。問題は、ほとんどの機能が同期であり、非同期ではないため、私は約束を使用すべきではないということです。最初の関数は約束を返さないことを、
return this.validateQueryAttributes(attributes)
.then(generateQuery)
.then(signQuery)
.then(sendQuery)
.then(handleResponse);
問題がある:私は何をしたいと思うことは、このようなものです。だから私はそれを他の関数と連鎖させることはできません。そのパターンは約束を得ることを期待しています。また、私は呼び出している関数のいずれかで発生する可能性のあるエラー状態を捕捉するために使いたいレベルの.catch関数を持っています。最初の関数を他の関数と連鎖させないと、最初の関数で起こったエラーはキャッチされませんでしたか?
はい、しかし、関数自体が同期していると約束を返すべきではありません。非同期関数には約束だけを使うべきです。 –
これはこの状況でのベストプラクティスですか?はいと思ったら、答えとして投稿してください。そして、その非同期ラッパーを作る方法:) –