Siguiendo un tutorial de Vue, en el que se hace un fetch
a una API que regresa una imagen de gatos, llegué de pronto a una situación curiosa.
new Vue({
el: '#app',
data: {
catSrc: null,
},
...
this.catSrc = null;
let res = fetch("https://api.thecatapi.com/v1/images/search",{
method: "GET",
headers: {
"x-api-key": API_KEY,
"Accept":"application/json",
},
})
.then(function(response) {
return response.json();
})
.then(function(data){
return data[0].url;
});
let getImg = () => {
res.then((result) => {
this.catSrc = result;
});
};
getImg();
Lo anterior hace el fetch
y logro devolver el valor de la promesa a la variable dinamica de Vue, pero como primero se me ocurrió "convertir" la función flecha, la alternativa nunca me regresó el valor que sí regresa la función flecha.
¿Alguien puede explicarme por qué de esto?
La función "normal" que traté de utilizar fue:
let getImg = function () {
res.then(function (result) {
this.catSrc = result;
});
};
getImg();