React.js - 如何在另一个方法完全执行后调用一个方法

Eun*_*orn 4 javascript node.js reactjs redux react-redux

我有两个简单的功能。单击按钮后,我试图在“handleSearchClick”函数中调用两个函数。

我想在“this.props.fetchNewsApiOrg(this.newsSourceName)”完全执行后运行“this.props.getNewsDesc()”。

这是代码:

handleSearchClick = () => {
    this.props.fetchNewsApiOrg(this.newsSourceName);
    
    this.props.getNewsDesc();
  }
Run Code Online (Sandbox Code Playgroud)

你能告诉我在另一个函数完全执行后调用一个函数的正确方法吗?

谢谢你。

Roh*_*ali 6

您可以将该方法作为参数传递并从 fetchNewsApiOrg() 中调用该函数。

handleSearchClick = () => {
    this.props.fetchNewsApiOrg(this.newsSourceName, this.props.getNewsDesc);
 }
...
fetchNewsApiOrg(newsSourceName,getNewDesc){
...
getNewDesc();
}
Run Code Online (Sandbox Code Playgroud)

在此方法中,您必须像this.getNewDesc = this.getNewDesc.bind(this)在构造函数中一样绑定 getNewDesc 。

或者你可以带着承诺去。

handleSearchClick = () => {
    this.props.fetchNewsApiOrg(this.newsSourceName).then(()=>{
    this.props.getNewsDesc();
  })
Run Code Online (Sandbox Code Playgroud)

这里 fetchNewsApiOrg 应该返回一个promise