Estaba haciendo el código y sentí la necesidad... de que quiero pasar el argumento adicional, es decir, msg a la función de devolución de llamada renderError() junto con el argumento de error predeterminado que genera la propia función catch en la función catch
tampoco puedo hacerlo de esta manera .catch(renderError(err,'this is msg'));
ya que se convertirá en function call y, según mi conocimiento, solo tenemos que pasar la función de devolución de llamada a la higher order function en lugar de llamarla allí.
Nota: no consulte otro código, ya que tomé un fragmento breve de mi código; solo quiero pasar el argumento a mi función de devolución de llamada, que es renderError()
const renderError = function (err, msg) { console.log(err); countriesContainer.insertAdjacentText('beforeend', msg); countriesContainer.style.opacity = 1; }; const getCountryData = function (country) { fetch(`https://restcountries.com/v2/name/${country}`) .then( response => response.json() // err => console.log(err) ) .then(data => { renderCountry(data[0]); const neighbour = data[0].borders[0]; if (!neighbour) return; return fetch(`https://restcountries.com/v2/alpha/${neighbour}`); }) .then( response => response.json() // err => console.log(err) ) .then(data => renderCountry(data, 'neighbour')) .catch(renderError); // ---->> here I want to pass the message that will be // display along with the call back function }; btn.addEventListener('click', function () { getCountryData('germany'); });Envuelva su llamada renderError en una función que exponga el valor del error .
.catch(error => { renderError(error, 'Your custom error message'); });