具有设置状态的新 Promise 接收箭头函数
new Promise with set state receives an arrow function
我正在浏览一个 React 代码库,其中我看到 Promise 函数使用 2 个参数调用 setstate,我无法准确地破译它究竟是如何工作的,我到处都看到创建的 setState 有一个对象参数,但在这里我们有一个 resolve 参数,它获取一个带有对象的 setstate 和一个调用 resolve 的箭头函数。另一个箭头函数,我不知道它在做什么以及这段代码是如何工作的
这就是我所拥有的状态
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
has a callback option。所以你不需要承诺,你也不需要等待 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();
});
}
我正在浏览一个 React 代码库,其中我看到 Promise 函数使用 2 个参数调用 setstate,我无法准确地破译它究竟是如何工作的,我到处都看到创建的 setState 有一个对象参数,但在这里我们有一个 resolve 参数,它获取一个带有对象的 setstate 和一个调用 resolve 的箭头函数。另一个箭头函数,我不知道它在做什么以及这段代码是如何工作的
这就是我所拥有的状态
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
has a callback option。所以你不需要承诺,你也不需要等待 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();
});
}