reactjs - 如何等待大量的 REST API 调用完成?
问题描述
我需要建立一个数据表,除了普通字段外,每一行都有自己的规则。对于插图:
构建行时,我手头没有所有数据,因此在构建每个行时,我需要为每个规则调用 getRule() 。
我所做的是:
this.data.forEach( (row) => {
this.sortedRules = row.Rules.sort(function(a, b){
a = a.Name.toLowerCase()
b = b.Name.toLowerCase()
if(a < b) { return -1; }
if(a > b) { return 1; }
return 0;
})
this.sortedRules.map ( rule => {
ruleSpecEditor.isRuleEnabled(rule.Id, this.userSessionId).then( (enabled) => {
this.setState({
[rule.Name+"_Enabled"]: enabled
})
})
// Promise.all(ruleEditor.getRule(rule.Id, this.userSessionId)).then( (ruleStruct) => {
ruleEditor.getRule(rule.Id, this.userSessionId).then( (ruleStruct) => {
this.setState({
[rule.Name+"_Valid"]: ruleStruct.Valid,
[rule.Name+"_ErrorDescription"]: ruleStruct.ErrorDescription
}, () => {
this.buildSingleRule(row)
})
}) //getRule call
}) //sorted rules map
this.buildRow(row)
// console.log("Json: ", jsonData)
rows.push(this.jsonData);
}) //foreach rows loop
this.setState({rows: rows})
在这种情况下,由于异步调用,我得到了行但没有规则的问题。我该如何处理?
解决方案
推荐阅读
- php - 如何为 ebay 解决([error] => invalid_client [error_description] => client authentication failed)
- java - Hibernate,如何在可能是唯一的列上进行多对一映射,忽略重复
- ruby-on-rails - Rails 与 3 个模型的关联
- java - JAVA(数组索引越界异常),Nutanix放置问题
- angular6 - 如何在角度 6 中关闭模态
- java - 如何在android中获取特定区域的坐标?
- neo4j - 需要查找组内共享的所有文件并直接向用户 neo4j Cypher 查询
- node.js - 在 cpanel 中安装 npm
- python - 从烧瓶中的客户那里获得时间
- html - 悬停类未注册