私は、コールバック関数をAngularJSサービスに提供することを提案するStackOverflowに関する回答を見てきました。Promiseからのコールバックがなぜ `.then`メソッドでアンチパターンであるのですか?
app.controller('tokenCtrl', function($scope, tokenService) {
tokenService.getTokens(function callbackFn(tokens) {
$scope.tokens = tokens;
});
});
app.factory('tokenService', function($http) {
var getTokens = function(callbackFn) {
$http.get('/api/tokens').then (function onFulfilled(response) {
callbackFn(response.data);
});
};
return {
getTokens: getTokens
};
});
これは私には反パターンと思われます。 $http
サービスは約束を返し、.then
メソッドコールバック関数を実行すると、不健全な制御の逆転のように感じます。
どうすればいいですかこのようなコードをコードとし、元の方法がどういう理由で説明したのですかいいですか?
実際に約束を無視する代わりに使用するように伝えてください。 – SLaks
私は 'promise'を使うのが健康であることがわかりました。それはそれをチェーン化し、非同期呼び出しを制御できるからです。 –
主な問題は、 'then()'に何も返されなければ、コールバックのエラーを捕捉することはありません。それは約束を使用して約束のチェーンを破る – charlietfl