4

私はまだ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;
    });

};
4

1 に答える 1