私はまだAngularに慣れていないので、ここで正しい考えを持っていることを願っています.
現在、restangular を使用してデータを取得し、次のようにプロミスを返すデータ レイヤー サービスを使用しています...
dataStore.getUsers = function (params) {
return users.getList(params);
};
次に、この関数を呼び出したコントローラーは、次のようにプロミスを受け取ります...
$dataStore.getUsers(params).then(function (response) {
$scope.users = response;
}, function(response) {
$log.error("Get users returned an error: ", response);
});
これはうまく機能していますが、返す前にデータストア内でプロミスを使用したいと考えています。.then() メソッドを使用して、失敗したかどうかを確認し、ログを記録してから、成功関数と失敗関数から元の約束をコントローラーに返したいと思います。
その後、コントローラーは .then() メソッドを使用できるようになります。実際、コントローラーのコードはまったく変更せず、データストアのコードだけを変更したいと考えています。
これは、データストア関数に何をさせたいかを示す半疑似コードです...
dataStore.getUsers = function (params) {
users.getList(params).then(function (response) {
$log("server responded")
return original promise;
}, function(response) {
$log.error("server did not respond");
return original promise;
});
};