请注意,我们在promise链的末尾调用done() - 总是make 一定要调用done(),否则抛出的任何错误都会被吞噬。
fetchData: function() {
fetch(REQUEST_URL)
.then((response) => response.json())
.then((responseData) => {
this.setState({
movies: responseData.movies,
});
})
.done();
},
这是空的。done()
实际上做了什么?
答案 0 :(得分:3)
我需要澄清的是:
then()
回调期间)存储为Error
对象,未抛出。 这种机制意味着您可以在没有异常风险的情况下推迟操作,让他们随机乱搞您。
done()
在没有参数的情况下调用了一个promise来查看是否存在任何存储的异常并将其抛出的承诺。这意味着您可以在承诺处理期间,在承诺处理结束时处理异常。