Search code examples
javascriptnode.jsajaxpromisees6-promise

Can not store the result of a get call using Fetch-node


I am using Fetch-node for a GET to a service.

 const response = await fetch("MY URL", {
        method: 'GET',
        headers: {
          'Content-Type': 'application/json',
        },
        timeout: 5000,
      }).then(res => res.json()).then(json => console.log(json));
      console.log(response);

I log the result in the second console.log() then and everything is fine. However, when it comes to the second console.log() the response is undefined. What I need is whatever is logged in the second to be stored in the response.

Is there anything wrong with what I am doing?


Solution

  • As mentioned, you're not returning a value for response, therefore it won't be equal to anything. You could return the JSON from your final then, or if you felt it was any cleaner, just await both instead of using .then at all.

    const response = await fetch("MY URL", {
            method: 'GET',
            headers: {
              'Content-Type': 'application/json',
            },
            timeout: 5000
          });
    
    const json = await response.json();
    
    console.log(json);