並列非同期呼び出しの状態を表示するには、どのインターフェイスまたはコンポーネントをお勧めしますか? (言語は私にとってそれほど重要ではありません。パターンだけです。同じクラス/インターフェースをjavascriptで書き直すことができます...)
REST サービスからモデル データをロードし、実際のコンテンツの前に保留中のラベルを表示し、問題が発生した場合はエラー メッセージを表示したい...これは一般的な問題であり、既に記述されたコンポーネントまたはベスト プラクティスが存在する必要があると思います、またはこのためのパターン。あなたはそのようなことを知っていますか?
スパゲッティ コードを次に示します。Backbone.syncParallel はまだ既存の関数ではありません。これには、updateForm、updated という 2 つの主な状態があります。すべてのメイン状態の前に、ページに「お待ちください!」と表示されます。ラベル、およびエラーにより、ページにエラー メッセージが表示されます。この種のコードは再利用性が高いと思うので、現在の状態を自動的に表示するコンテナーを作成できると思いますが、このコンポーネントがどのようなインターフェイスを持つべきかを判断できません...
var content = new Backbone.View({
appendTo: "body"
});
content.render();
var role = new Role({id: id});
var userSet = new UserSet();
Backbone.syncParallel({
models: [role, userSet],
run: function (){
role.fetch();
userSet.fetch();
},
listeners: {
request: function (){
content.$el.html("Please wait!");
},
error: function (){
content.$el.html("Sorry, we could not reach the data on the server!");
},
sync: function (){
var form = new RoleUpdateForm({
model: role,
userSet: userSet
});
form.on("submit", function (){
content.$el.html("Please wait!");
role.save({
error: function (){
content.$el.html("Sorry, we could not save your modifications, please try again!");
content.$el.append(new Backbone.UI.Button({
content: "Back to the form.",
onClick: function (){
content.$el.html(form.$el);
}
}));
},
success: function (){
content.$el.html("You data is saved successfully! Please wait until we redirect you to the page of the saved role!");
setTimeout(function (){
controller.read(role.id);
}, 2000);
}
});
}, this);
form.render();
content.$el.html(form.$el);
}
}
});