Bonjour J'ai un objet qui contient peu de méthodes. Dans l'un d'entre eux, j'utilise la promesse d'en exécuter une autre et j'utilise .then
pour récupérer des données.Méthode d'appel de la promesse
Dans .then
mon mot-clé this
est modifié et je n'arrive pas à comprendre comment appeler à nouveau une autre méthode à partir de ce point.
donc la méthode que je vous écris au sujet est:
convertToUSD: function(selectedCurrency,priceField) {
var priceField = priceField;
var selectedCurrency = selectedCurrency;
console.log('selectedCurrency in service: '+selectedCurrency);
console.log('priceField in service: '+priceField);
var currentCurrency = this.getRatio(selectedCurrency);
currentCurrency.then(function(response) {
console.log(response);
console.log('to USD: '+response.toUSD);
if(response.toUSD !== undefined){
var userPriceInUSD = priceField*response.toUSD;
console.log(userPriceInUSD);
this.addTax(userPriceInUSD);
};
});
},
dans la déclaration if()
que je fais un calcul simple et je veux passer le résultat à la méthode addTax()
(dans le même objet), mais this
mot-clé ne fonctionne pas comme prévu dans ce cas, alors comment puis-je commencer une autre méthode à ce stade? Et la question moins importante - est-ce que c'est ce que je fais nommé chaînage?
Solution 1 - utiliser une fonction de flèche '.alors ((réponse) => {' - solution deux, sauvegardez une référence à ceci, dites dans 'var _this = this;' en dehors de cette fonction .then, et utilisez _this dedans –
https://stackoverflow.com/questions/34930771/why-is-this-undefined- inside-class-method-when-using-promises – Donal
Je savais qu'il y avait un dupe: p –