- div.container
- button.btn
- p.result(dummy text)
- the main idea the same, just external data
- important
- search engine
- test in the browser
-
random joke
-
Special thanks
- select btn, result
- check if both elements selected
- listen for click events
- create async function
- setup fetch
- set result.textContent = joke
const fetchMakeJoke = async () => {
const response = await fetch(url, {
headers: {
Accept: 'application/json',
'User-Agent': 'learning app',
},
});
const data = await response.json();
result.textContent = data.joke;
};
- set result equal to - 'Loading...'
- try/catch block
- set result equal to - 'There was an error..'
- Fetch - only throws an error if cannot resolve
- Error response still a response
- check response.ok property
- throw new Error('Whoops!')