什么时候返回fetch()以及何时仅使用fetch()请求?

时间:2018-07-25 01:23:12

标签: react-native fetch-api

我从本机开始,我一直想知道的是,有时候我看到fetch的用法是这样的:

createTodo(){
   fetch('http://192.168.1.34:3000/createTodo', {
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        content: this.state.noteText,
      }),
   }).then((response) => response.json())
      .then((responseJson) => {
        var d = new Date();
        this.state.noteArray.push({
            'date':d.getFullYear()+
            "/"+(d.getMonth()+1) +
            "/"+ d.getDate(),
            'note': responseJson.data.content
        });
        this.setState({ noteArray: this.state.noteArray });
        this.setState({noteText:''});

        console.log(responseJson);
      }).catch((error) => {
        console.error(error);
        console.log('Shit! Error occured');
      });
}

这很好。

有时是:

return fetch(...)...

我有点困惑。

1 个答案:

答案 0 :(得分:1)

fetch是Promise,它返回另一个Promise。已解决的结果传递到下一个.then输入参数。因此,在示例代码中,您可以处理response函数传递的fetch值。

fetch的客户想要使用createTodo的“结果”时,可以返回createTodo函数。 “结果”是另一个Promise,其输入参数来自createTodo的返回值

Demo仅用于显示Promise的返回值是另一个Promise。希望您能得到提示。