只有在第一个方法完成后才能调用另一个方法

时间:2019-09-09 18:42:28

标签: javascript reactjs ecmascript-6 components

我遇到一种情况,我需要在一种方法中使用数组,而该方法先前是在第一种方法中填充的。

我需要两种方法都可以在componentDidMount上执行,例如加载国家/地区,然后在下降国家中加载当前国家/地区的城镇。像这样。

让我们说我需要分别调用这两个方法:

async componentDidMount() {
      this.loadCountries();
      this.loadCities(this.state.currentCountry.id);
}

如何确保第一种方法执行完毕,因为我需要在第二种方法中使用countries数组countries[],

现在我有从服务器中检索到情况数据,但是第二种方法不知道它是因为可能是异步检索的,仅此而已。

谢谢大家

欢呼

2 个答案:

答案 0 :(得分:1)

只有在第一个功能完成后,才可以使用async/await方法来调用第二个功能。

这是您的摘录。

var countries = [];
    async componentDidMount() {
         await this.countries = this.loadCountries(); // you will have countries values in 'this.countries'. Which you can access it further . 
         await this.loadCities(this.state.currentCountry.id);
    }

答案 1 :(得分:0)

如果您在第一种方法中返回的是coutries的全局列表[],则第二种方法将知道