Search code examples
javascriptreact-nativeresponsefetch-api

How to call function after fetch() has finished


I am using react-native and I have fetch GET request which takes an array. Now I need this fetch() to finish getting that array so I can call a function which will handle this array and do something with it. How do I wait for it to finish?

This is my request:

componentWillMount() {
  console.log("will mount");
  fetch('SOME_API', {
    method: "GET",
    headers: {
      Accept: 'text/javascript',
      'Content-Type': 'text/javascript',
    }
  }).then(response = >response.json()).then(responseJson = >{
    this.setState(function(prevState, props) {
      return {
        questions: responseJson,
        loading: false
      }
    })
  })
}

And when this get request puts responseJson in state I want to call my function that will do something with that array.

If you need any more info please comment.


Solution

  • Just Define the function inside the class and call the function using this.{function_name} as below.

    myFunction(responseJson) {
      // ... Your code ...
    }
    componentWillMount() {
      console.log("will mount");
      fetch(baseUrl + 'api/Customer/GetCustomerAccount/' + value, {
        method: 'GET',
      })
      .then((response) => response.json())
      .then((responseJson) => {
        this.myFunction(responseJson);
      })
    }