私は4つの応答の約束を得る必要がありますが、これを行うには最初にすべての関数を最初から最後まで順番に呼び出す必要があります。私のコードから、最後に呼ばれた関数からの約束コールバックの次の関数を呼び出すことができます。逐次約束
しかし、コードは適切ではないので、これを行うにはもっと良い方法があるかどうかを知る必要があります。
提案がありますか?
$scope.createPayment = function() {
var dados = $scope.card;
// get first promise
PagamentoMP.createToken(dados)
.then(
function(result) {
dados.token = result;
// get second promise
PagamentoMP.guessPaymentMethod(dados)
.then(
function(result) {
dados.paymentMethod = result;
// get third promise
PagamentoMP.getIssuers(dados)
.then(
function(result) {
dados.issuer = result;
// get fourth promise
PagamentoMP.getInstallments(dados)
.then(
function(result) {
dados.installments = result;
},
// error for fourth promise
function(result) {
console.log("getInstallments PAGAMENTOMP -> Failed to get the name, result is " + result);
}
);
},
// error for third promise
function(result) {
console.log("getIssuers PAGAMENTOMP -> Failed to get the name, result is " + result);
});
},
// error for second promise
function(result) {
console.log("guessPaymentMethod PAGAMENTOMP -> Failed to get the name, result is " + result);
});
},
// error for first promise
function(result) {
console.log("createToken PAGAMENTOMP -> Failed to get the name, result is " + result);
});
};
私はあなたが約束を返す機能を支配しているかどうかわかりません。あなたがそうするなら、私はそれらを再加工することを考えて、あまりにも多くの非同期のものを避けることができます。私は約束を複数回入れなければならないと、いつも赤旗を考えています。 –