gpt4 book ai didi

javascript - 在对象内的回调中从一个方法返回值到第二个方法

转载 作者:行者123 更新时间:2023-12-03 03:15:25 26 4
gpt4 key购买 nike

我有一个大对象,它基本上负责整个兑换货币。

在这个对象中我有 4 个方法。

addTaxAndShowBack() 是我的“main ”方法,它将其他方法作为具有某种回调 hell 的链执行。

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);
});
},

第一个执行的方法(convertedToUSD())工作正常,它返回从用户默认货币转换为美元的货币。第二个是 addTax() ,它没有按照我想要的方式返回值。 console.log(response) 不记录任何内容。 addTax方法的代码为:

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;
}
},

我可能在 addTax() 中做错了什么,没有正确返回或没有在 addTaxAndShowBack() 中正确分配它,我不知道,这就是我需要的原因你的帮助。

return FinalPriceInUSD; 这就是第二个回调中 addTaxAndShowBack() 中的响应

最佳答案

您没有返回 promise 。试试这个

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 new Promise(res => { res(finalPriceInUSD) });
} else {
finalPriceInUSD = priceInUSD*1.03;
console.log('after tax 3%: '+finalPriceInUSD);
return new Promise(res => { res(finalPriceInUSD) });
}
},

关于javascript - 在对象内的回调中从一个方法返回值到第二个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46789550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com