Question: I am following a tutorial on react, and I am sorry for this newbie question but I am wondering why do we need to deconstruct parameters in this line, when we fetch data from an api:

```
.then( ({results: items}) => this.setState({items}))

componentWillMount(){
    fetch( 'https://swapi.co/api/people/?format=json' )
      .then( response => response.json() )
      .then( ({results: items}) => this.setState({items}))
}

```

What I am wondering is, why can't we just pass the result of `response.json()` as a normal parameter like this:

```
.then( (items) => this.setState({items}))

```

Answer: 
You dont need to destruct:

```
.then( res => this.setState({items: res.result }))

```

or:

```
.then( response => response.json().result )
.then( items => this.setState({items}));

```
Let's go step by step

```
fetch( 'https://swapi.co/api/people/?format=json' )
      .then( response => response.json() )
      .then( ({results: items}) => this.setState({items}))

```

`fetch` returns a Promise that resolves into a Response object. `response.json()` returns a Promise that resolves into a JSON of the response body. Every time that you return a Promise on a `then()` it's passed down the chain, so you get it as an input on the next `then`. Finally, the JSON object that the response body contains it's probably of the form `{ results, ...}`. on the last fetch, the destructuring takes that JSON, extracts whatever the `results` key has inside and renames it to `items`, so you can reference it inside the callback as a variable called `items`.

Without destructuring, that last `then` would need to have this shape:

```
.then(responseBodyAsJSON => this.setState({items: responseBodyAsJSON.results }))

```