我有一个函数(buildOrganization
)可以更新用户界面中的图形。
它可以处理与我现在尝试使用的数据完全相同的数据结构(其处理的数据为updatedGraphTable
)
第二次尝试使用它会引发错误(在功能getSubsidiaryEngagements
中)
TypeError:path.resolve的参数必须为字符串
调用端点后会接收到两组数据,它们都是JSON响应-对象数组格式。 { {[ {[ ]} ]} }
就是这样。
这是我的代码:
更新代码(图形文件)的功能:
buildOrganization(root, resolve): void {
if (root) {
this.organization.clear();
this.organization.setProperties(root, this.filterParams);
this.focus = this.organization;
if (this.userList.length === 0) {
this.userList = this.organization.individuals;
}
this.reload = false;
this.data();
resolve(true);
}
}
使用该函数并使其正常工作(通过updatedGraphTable
-与我的其他数据具有相同的数据结构-对象数组。(它们是从同一端点派生的):
graph(id: string): Promise < boolean > {
if (this.organization.id && this.organization.id !== id) {
this.organization = new EngagementRoot();
this.resetGraph();
}
this.organization.setValues(id);
return new Promise((resolve, reject) => {
if (!this.reload) {
resolve(false);
} else {
let areasLoaded = false;
let root: IEngagementGraphNode;
Observable.zip(this.organizationEngagements(id, this.requestOptions()), this.organizationIndividuals(id, this.requestOptions()))
.subscribe(([updatedGraphTable, individualsData]) => {
if (areasLoaded) {
console.log('updated graph table!' + JSON.stringify(updatedGraphTable))
return this.buildOrganization(updatedGraphTable, resolve);
} else {
root = updatedGraphTable;
}
}, error => reject(error));
}
});
}
现在这是行不通的函数,我将其包括在此图形函数之外,因为我只希望在从另一个将显示的文件中调用它时调用它(因此数据将以相同的方式输入updatedGraphTable
的方式是:
getSubsidiaryEngagements(subId, resolve) {
return this.subsidiariesEngagements(subId)
.subscribe(data => {
console.log('subsidiary engagements' + JSON.stringify(data));
return this.buildOrganization(data, resolve); < --error!
})
}
然后在另一个文件中,我试图调用此新功能:
updateSub(data) {
this.engagementService.getSubsidiaryEngagements(this.subId, resolve)
}
但是在我什至没有调用它之前,在页面首次加载时,我甚至在调用该函数之前就在控制台中收到此错误,但在调用该函数时也会显示该错误:
TypeError:path.resolve的参数必须为字符串
在webpackJsonp ... / .. / .. / .. / path-browserify / index.js.exports.resolve
我确定我很傻并且缺少明显的东西吗?