Ich brauche vier Versprechen zu versprechen, aber um dies zu tun, muss ich zuerst jede Funktion in der Reihenfolge von der ersten bis zur letzten aufrufen. Sie können aus meinem Code sehen, dass ich die nächste Funktion im Callback-Versprechen von der zuletzt aufgerufenen Funktion aufruft.Sequentielle Versprechen
Aber der Code sieht nicht angemessen aus, also muss ich wissen, ob es einen besseren Weg gibt, dies zu tun.
Irgendwelche Vorschläge?
$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);
});
};
Ich weiß nicht, ob Sie irgendeine Kontrolle über die Funktionen haben, die die Versprechen zurückgeben. Wenn Sie das tun, würde ich überlegen, sie zu überarbeiten, so dass Sie so viel Async-Kram vermeiden können. Ich denke immer über eine rote Fahne nach, wenn ich mehr als einmal mit Versprechungen nisten muss. –