如何通过调用服务方法的结果来初始化变量?

时间:2019-02-28 22:00:15

标签: javascript angular typescript

在我的代码中,我遍历nameArr。在foreach循环中,我从encjaService调用find()方法。我想将调用find()方法的结果设置为encja1变量。现在,当我尝试以这种方式声明encja1变量时,在下一行中,我尝试使用this.encja1.id值在控制台上写入日志。

我的test()方法在组件文件中:

test(nameArr: IName[]) {
    this.names = nameArr;
    nameArr.forEach(function(item, index) {           
        console.log('TEST (item.encjaId)=>' + (item.encjaId));
        this.encja1 = this.encjaService.find(item.encjaId).subscribe((res: HttpResponse<IEncja>) => res.body);
        console.log('TEST (encja.id)=>' + (this.encja1.id));
        console.log('TEST (encja.type)=>' + (this.encja1.type));
        const element = { lp: index + 1,
            oid: item.encjaId,
            lastName: item.wholeName,
            match: item.matchedAmount + '/' + item.encjasAmount,
            description: [{name: 'adam', symbol: 'a'}]
        };
        ELEMENT_DATA.push(element);
    }, this);
}

我在encjaService中的find()方法:

find(id: number): Observable<EntityResponseType> {
    return this.http
        .get<IEncja>(`${this.resourceUrl}/${id}`, { observe: 'response' })
        .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
}

**问题:如何将调用find()方法的结果设置为encja1变量? **

0 个答案:

没有答案