Не получается ответ от вложенного mergeMap Rxjs

У меня есть следующие кодовые адреса, возвращающие наблюдаемые значения из массива, который может быть числовым или нечисловым. Если значения числовые, я могу получить ответ напрямую, но если он не числовой, то сначала мне нужно найти его правильный идентификатор, используя его "Идентификатор происхождения", который является строкой, а затем получить данные.

Но подписка не работает для меня, я не уверен, правильно ли я делаю это или нет

    this.addresses
    .mergeMap((addrid: any) => {
        if (isNaN(Number(addrid))) {
            this.partyService.getEntityByExtIdandRequestId(data.requestId, 'ADDRESS', addrid)
            .mergeMap((res: any) => {
                return this.partyService.getEntity(data.partyId, 'ADDRESS', res.data[0].entity.entityId);
            });
        } else {
            return this.partyService.getEntity(data.partyId, 'ADDRESS', addrid);
        }
    })
    .subscribe((address: any) => {
        console.log('Subscribe');
        console.log(address);
        let addressStr = '';
        if (address.data.location.addressLine1 !== null) {
            addressStr += address.data.location.addressLine1 + ', ';
        }
        if (address.data.location.countryCode !== null) {
            addressStr += address.data.location.countryCode + ', ';
        }
        if (address.data.location.postalCode !== null) {
            addressStr += address.data.location.postalCode + ', ';
        }
        addressArr.push(addressStr);
        console.log('=========================>Address');
        console.log(addressStr);
        // this.request.subscription.addresses = addressArr;
    },
    (err) => {
            console.log(err);
        });
}

0 ответов

Другие вопросы по тегам