There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply () below.
If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.
Join the Discussion. Help a fellow learner on their journey.
Ask or answer a question about this exercise by clicking reply () below!
Agree with a comment or answer? Like () to up-vote the contribution!
IF we get a failed response back from the fetch, not a network error but a falsy response.ok, where is that error displayed? Can we capture a better error message?
Hi! I’m also confused about your first question with there being no else, but for your second question I think we don’t use () because it is an anonymous function, so we don’t really define a function name, and back in the Functions section of the course, under Concise Body Arrow Functions, it shows that yes, when one parameter is used then the () aren’t needed.
As for your third question, I think we need the {} because inside the .then() is an anonymous function. {} contain the function body, and return jsonResponse is the function body in this case.
it doesn’t work. I thought for single line block you can omit the ‘return’?
I’m not sure what you meant here, because in your example return isn’t omitted.
if you only have one parameter, you may leave out the parentheses in an arrow function.
Regarding your question about the single-line functions, you can omit the return command altogether. just parameter => expression. I found this info on this article from the Mozilla Hacks blog.
Here:
When you just need a simple function with one argument, the new arrow function syntax is simply Identifier => Expression . You get to skip typing function and return , as well as some parentheses, braces, and a semicolon.
Could anyone please explain to me the parameters response and jsonResponse? are these fixed values or variables that would be defined within the code body of a normal site?
What is the difference between this not accepted syntax: .then((response)=>{
and this: .then(response=>{
? If it’s an anonymous function, wouldn’t it be the same?
Hi, I was wondering about the last part of the excersice:
" The second .then() ‘s success callback won’t run until the previous .then() method has finished running. It will also not run if there was an error was thrown previously."
Why wouldn’t the second .then() run if an error message was thrown previously?
From what I can tell, this appears to be handling two different types of error. The first then handles the error in which the GET request gets to the final destination but fails to return something from the server. The second then handles the error in which the network fails and the request never gets to the server.
I’m having trouble understanding this also. Here is what I have come up with but I’m not sure if it is correct or not.
When we return response.json() it doesn’t just return a message we can log, it returns a promise that must be dealt with properly with the .then() method.
The .then() method reads the promise that response.json() passes into it and we can then extract the key value from to log or return.
Check out this web page for reference on .json()
You will also notice this mentioned in the next lesson (4 fetch() GET Requests III) 8.
Delete renderJsonResponse(response) and replace it with return response.json() . By returning response.json() , the next function that is .then() chained to it will receive a Promise with JSON data.
I have the exact same question. I’m not sure why these parameters are defined the way they are and how we actually pass response or jsonResponse. Can these be called anything, or do they specifically have to be response and jsonResponse? It would be great to explain this in the tutorial.
Can someone rewrite the answer using the regular function way? I think it’ll help me and others struggling to visualize the construction of requests moving forward.
JavaScript code is bieng executed from top to bottom line by line, cause of that when it reaches the if(response.ok) { return response.json(); } code block, if the if statement response.ok is truthy then the code inside of the if statement block will be executed and by using the return keyword we are telling it to exit from the function.