为什么我们必须在react-native中的promise链的末尾调用`.done()`?

时间:2015-10-18 04:52:35

标签: javascript react-native

react-native tutorial中说:

  

请注意,我们在promise链的末尾调用done() - 总是make   一定要调用done(),否则抛出的任何错误都会被吞噬。

 fetchData: function() {
    fetch(REQUEST_URL)
      .then((response) => response.json())
      .then((responseData) => {
        this.setState({
          movies: responseData.movies,
        });
      })
      .done();
  },

这是空的。done()实际上做了什么?

1 个答案:

答案 0 :(得分:3)

我需要澄清的是:

  • 在promises中遇到的异常(在执行then()回调期间)存储为Error对象,未抛出

这种机制意味着您可以在没有异常风险的情况下推迟操作,让他们随机乱搞您。

  • done()在没有参数的情况下调用了一个promise来查看是否存在任何存储的异常并将其抛出的承诺。

这意味着您可以在承诺处理期间,在承诺处理结束时处理异常。