Я сделал функцию в моем компоненте angular2 +, и вывод идет первым, а функция запускается позже, и, следовательно, соответствующий вывод, который мне нужен, приходит позже.Функция передает параметр переменной вместе с запросом http на внутренний NodeJS.И возвращает результат.Я хочу найти его длину, которую я могу найти.Однако я хочу вызвать этот параметр более одного раза, передав несколько параметров.Поэтому я определил это как асинхронную функцию.Код имеет вид -
app.component.ts
// Function 1
getNodesCount() {
console.log("INSIDE getNodesCount()")
if (this.selectedAPIName.length == 1) {
this.nodesObjQ1 = {
'relationObj': this.menuItem,
'nodeValue1': this.selectedAPIName[0]
}
this.callFunctionCount(this.nodesObjQ1).then((rs: any[])
=> {
this.nodesObjL1 = rs;
});
console.log("this.nodesObjL1 =", this.nodesObjL1)
}
}
//Function 2
async callFunctionCount(trueNodesObject) {
console.log("nodesObj =", trueNodesObject);
await new Promise(next => {
this.http.get("http://localhost:3003/seekExtraction/nodesObj/" +
JSON.stringify(trueNodesObject))
.map(Response => Response)
.catch((err) => {
console.log("err =", err)
return Observable.throw(err);
})
.subscribe((res: Response) => {
console.log("XXXXXXXXXXXX Response on /seekExtraction",
res);
this.nodesInfo = res;
this.nodesLength = this.nodesInfo.records.length
next()
})
});
console.log("return this.nodesLength =", this.nodesLength)
return this.nodesLength;
}
Основные выходы -
this.nodesObjL1 = undefined
return this.nodesLength = 2
Пожалуйста, помогите получить это значение -
this.nodesObjL1
после этого значения
this.nodesInfo.records.length= 2