请帮助我理解 JS 中的 Promise。所有代码都在这里:https ://jsfiddle.net/cyr7wuaL/
最简单的货币转换器,任务是通过promise来写。据我了解,如果我应该始终通过 .then 解决并执行数学运算。出于某种原因,我进入了.catch。要么我误解了 Promise 的含义,要么某处有错误。
let inputRub = document.getElementById('rub'),
inputUsd = document.getElementById('usd');
function getData() {
return new Promise(function(resolve, reject) {
inputRub.addEventListener('input', () => {
let data = {
usd:"60"
}
if (true) {
resolve();
} else {
reject();
}
});
});
}
getData()
.then(()=>inputUsd.value = inputRub.value / data.usd)
.catch(()=>inputUsd.value = "Не ОК");
如果其他人需要解决方案:您需要将 getData() 函数放在 inputRub 处理函数中,以便它会为每次点击进行计算。并且必须将data对象传递给resolve(data),这样才能从then获取这个对象,嗯,在.then(data)方法中获取data对象,解法的代码就在这里
https://jsfiddle.net/mhaoLb1y/