Estoy practicando con las peticiones asíncronas. En uno de los ejercicios sale éste código. Lo que no llego a entender es el método .then(). A este método se le pasa una función por parámetro que a la vez recibe otro parámetro. Éste segundo parámetro response a qué hace referencia? o de dónde sale? No entiendo el flujo de ejecución del código, es decir, entiendo la lógica del código y lo que hace, pero no entiendo realmente cómo lo hace.
Código
let luke
function _handleError(err) {
console.log(`Request failed: ${err}`)
}
fetch('https://www.swapi.co/api/people/1/')
.then(function a(response) {
return response.json()
})
.then(function b(json) {
luke = json
return fetch(luke.homeworld)
})
.then(function c(response) {
return response.json()
})
.then(function d(json) {
luke.homeworld = json
console.log(`${luke.name} nacio en ${luke.homeworld.name}`)
})
.catch(err => _handleError(err))