为什么我们必须在react-native的承诺链的末尾调用' .done() ' ?

Why do we have to call `.done()` at the end of a promise chain in react-native?

本文关键字:调用 done 我们 react-native 承诺 为什么      更新时间:2023-09-26

在react-native教程中,它说:

注意,我们在promise链的末尾调用done()——总是make一定要调用done(),否则抛出的任何错误都将被忽略。

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

这空了什么?done()到底做了什么?

我需要澄清的:

  • 在承诺中遇到的异常(在执行then()回调期间)被存储为Error对象,并且不会被抛出

这种机制意味着你可以推迟操作,而不会有异常在随机时间把你搞砸的风险。

  • done()在没有参数的情况下调用promise,查看promise是否存在存储异常,并抛出它们。

这意味着你可以在承诺处理过程中,在承诺处理结束时处理异常。