const errorTest = () => {
  const result = $.get("http://data.fixer.io/api/latest?access_key=9790286e305d82fbde77cc1948cf847c&format=1");
  result
    .then(val => console.log(val.rates))
    .catch(err => console.error(err))
}
errorTest()<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>.then() works, but catch() doesn't. It keeps showing an error:  result.then(...).catch is not a function at errorTest.
Why? $.get() is supposed to return a promise, and assign it to result. That's why .then() works, but why is catch() not working?
It works if I use fetch() instead.
 const result = fetch("http://data.fixer.io/api/latest?access_key=9790286e305d82fbde77cc1948cf847c&format=1");
So, why is catch() not working with ajax requests then?
ADDITIONAL QUESTION
const errorTest = (a, b) => { 
  const result = $.get("http://dataa.fixer.io/api/latest?access_key=9790286e305d82fbde77cc1948cf847c&format=1");
  result
  .then(val => console.log(val.rates))
  //.catch(err => console.error("INSIDE ERROR" + err))
}
try { 
 errorTest()
}
catch(err) { 
  console.log("OUTSIDE ERROR!" + err)
}The link is intentionally incorrect to get an error. If I uncomment the catch() inside the function, that inside catch() will capture the error. If I comment out, or just remove the inside catch(), I would expect the outside catch() to get the error, but it's not. Why?
 
    