0
The deferred antipatternは「忘れられた約束」とも言われていますHERE。遅延反パターン、どのように不合格を処理するか?
私も読む:what-is-the-explicit-promise-construction-antipattern-and-how-do-i-avoid-it。
とにかく私は$q.defer()
を使用して取り除くべきです。
しかし、私は応答を得たケースを処理する方法を理解しておらず、適切なキーがないために拒否する必要があります。
これは私のサービスのメソッドで、コントローラへの約束を返します。
self.findTime = function(data){
var deferred = $q.defer();
apiClient.findTime(data)
.then(function (response) {
if (response.result !== "success") {
deferred.reject(response);
}
deferred.resolve(response);
}
, function (error) {
deferred.reject(error);
console.error(error);
});
return deferred.promise;
};
だから私はそれを変更しようとした:
reject
を処理する方法
self.findTime = function(data){
return apiClient.findTime(data)
.then(function (response) {
if (response.result !== "success") {
// return WHAT ??? <-------------
}
return response;
}
, function (error) {
// return WHAT ??? <-------------
console.error(error);
});
};
?
コントローラでは、拒否に私はいくつかの朝のメッセージを表示します。
Service.findTime(data).then(function (response) {
// do something
}, function (error) {
// show warn dialog
});