フロー制御に使用できる js ライブラリがいくつかあります。
ただし、クロージャーコンパイラーを使用する場合、私が見たものはまだ高度なモードのコンパイラーではうまく機能しません。
クロージャと互換性のあるフロー制御ライブラリはありますか? コードを必要以上に複雑にすることなく、複数の結果を待つことに主に関心があります。
アーカイブしたいのは、ユーザー アクションの読み込み時間を短縮することです。ユーザーの 1 つのアクションに対して、バックエンドに対して複数の要求を実行する必要があります。コードを維持しやすくするために、現時点では、一度に 1 つのリクエストを実行し、各ステップの後で潜在的なエラーを処理しています。
アーカイブしたいのは、必要以上にエラー処理を複雑にすることなく、依存しないリクエストをまとめて起動できることです。
フロー js の構文が好きです。
var auth = flow.define(
function(username, password) {
sys.puts("trying " + username + ", " + password);
this.password = password;
keystore.get('userId:' + username, this);
},function(err, userId) {
keystore.get('user:' + userId + ':password', this);
},function(err, passwordInDb) {
if (passwordInDb == this.password) {
sys.puts("Authenticated!");
}
else {
sys.puts("Failed Authentication!");
}
}
)
また、複数の非同期操作を生成して収集することもできます。ただし、コールバック間の状態が必要な場合、状態は上記の「this.password」のように保存されます。包含スコープが型指定されていないため、ADVANCED モードの場合、クロージャ コンパイラは (私の理解では) 一貫して名前を変更できません。
したがって、各関数を介してパラメーター (または this) としてプッシュされる型指定されたコンテナー オブジェクトを持つ代替が必要です。