J'ai un gros objet qui est responsable de la conversion de l'argent.Renvoi d'une méthode à une seconde en rappel dans l'objet
Dans cet objet, j'ai 4 méthodes.
addTaxAndShowBack()
est ma méthode "principale" et elle exécute les autres en tant que chaîne avec une sorte de rappel de l'enfer.
addTaxAndShowBack: function(priceField,selectedCurrency) {
var that = this;
var convertedToUSD = this.convertToUSD(priceField,selectedCurrency)
.then(function(response) {
console.log(response);
var priceInUSD = response;
that.addTax(priceInUSD,selectedCurrency)
.then(function (response) {
console.log(response); // !!! THIS CONSOLE.LOG DOESN'T LOG ANYTHING
}, function() {
console.log('error');
});
}, function (response) {
console.log(response);
});
},
Première méthode exécutée (convertedToUSD()
) fonctionne bien, il retourne l'argent converti de la monnaie par défaut utilisateur à USD. Le deuxième est addTax()
et il ne retourne pas la valeur que je voudrais. Le console.log(response)
n'enregistre rien. Le code de la méthode addTax
est:
addTax: function(priceInUSD, selectedCurrency) {
var finalPriceInUSD;
if(priceInUSD<300){
// i should also store userPriceInUSD in some variable
// maybe rootScope to send it to backend
finalPriceInUSD = priceInUSD*1.05;
console.log('after tax 5%: '+finalPriceInUSD);
return finalPriceInUSD;
} else {
finalPriceInUSD = priceInUSD*1.03;
console.log('after tax 3%: '+finalPriceInUSD);
return finalPriceInUSD;
}
},
Je suis probablement faire quelque chose de mal à ne pas retourner addTax()
correctement ou ne pas attribuer correctement dans addTaxAndShowBack()
Je ne sais pas et c'est pourquoi j'ai besoin de votre aide.
return finalPriceInUSD;
est ce que response
dans dans le deuxième rappel devrait être.