【发布时间】:2018-07-09 14:49:34
【问题描述】:
下面的代码是有问题的,因为它没有返回任何东西。我该如何解决?
public checkExistence(value: Item, tableName: string, schema: string): Promise<string>{
var result = "";
this.configData.forEach(element => {
if(element.key.tableName === tableName && element.checkExist != null){
let uiValue = value[element.key.columnName];
let refTargets = element.checkExist.split("|");
refTargets.forEach(target => {
let targetTableColumn = target.split(',', 2);
let table = targetTableColumn[0];
let column = targetTableColumn[1];
this.getRefData(schema,table,column).then((value: string[]) => {
if (!(value.indexOf(uiValue) > -1)){
result = result + table + "," + column + "|";
}
})
});
}
});
}
此函数的全部目的是检查某些参考表的某些列中是否存在value[element.key.columnName]。可能有多个要检查的参考表(因此refTargets.forEach)。
最终,我希望此函数返回一个字符串,该字符串表示不包含此值的表/列列表。
发现了这个类似的案例,但不知道如何将其应用于我的案例。 Angular chaining promises from foreach loop
开始学习 Angular 和 Promise,如果您能提供帮助,不胜感激。
如果您认为这个函数可以用更好的方式编写,请告诉我。如果它有效,我会接受它:)
【问题讨论】: