我遇到一种情况,我需要在一种方法中使用数组,而该方法先前是在第一种方法中填充的。
我需要两种方法都可以在componentDidMount
上执行,例如加载国家/地区,然后在下降国家中加载当前国家/地区的城镇。像这样。
让我们说我需要分别调用这两个方法:
async componentDidMount() {
this.loadCountries();
this.loadCities(this.state.currentCountry.id);
}
如何确保第一种方法执行完毕,因为我需要在第二种方法中使用countries数组countries[],
。
现在我有从服务器中检索到情况数据,但是第二种方法不知道它是因为可能是异步检索的,仅此而已。
谢谢大家
欢呼
答案 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的全局列表[],则第二种方法将知道