new Promise with set state接收一个箭头函数



我正在经历一个react代码库,在那里我看到Promise函数调用setstate有2个参数,我不能确切地破译这是如何工作的,到处我都看到setstate被创建有一个对象参数,但在这里我们有一个解析参数,得到一个setstate与一个对象和一个箭头函数调用解析。另一个箭头函数,我不知道它在做什么也不知道这段代码是如何工作的

这是我对state的定义

constructor(props){
super(props);
this.state = {
articles:[],
loading:true,
page:1,
totalResults : 0
}
}

这是我在我的代码库中,我有困难理解的代码。

handleNextClick = async ()=>{
await new Promise(resolve => this.setState({page: this.state.page+1}, () => resolve())); // same as await this.setState({page: this.state.page+1});
await this.updateNews();
}

正如你所看到的,Promise正在接收resolve箭头函数,该函数用一个对象和一个箭头函数调用setstate。谁能解释一下这到底是怎么回事?

这段代码没有多大意义,这可能就是为什么它很难理解的原因。

setState有回调选项。你不需要promise,你也不需要等待setState。此外,您可能也不需要等待updateNews,因此您可以从handleNextClick函数中删除异步。

函数应该是这样的。

handleNextClick () {
// Set the new state, then use the callback option
// to call `updateNews`
this.setState( { page: this.state.page + 1 }, () => {
this.updateNews();
});
}