升级到nativescript-angular 5.2后的rxjs / combineLatest错误

时间:2018-01-23 10:48:32

标签: angular rxjs observable nativescript

升级到nativescript-angular 5.0后,我收到错误消息: 物业' combineLatest'类型' Observable上不存在 似乎再也不可能写:Observabel.combineLatest()

import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import "rxjs/add/operator/map";
import "rxjs/add/observable/combineLatest";
import { Observable } from 'rxjs/Observable';
import * as Config from '../../config';


@Injectable()
export class CountryService {
    appSettings = require("application-settings");

    constructor( private _apiEndpoints: Config.ApiEndpoints, 
                private _http:Http,
                private _settings:Config.Settings) {
    }


    getPhonePrefix(): Observable<Object> {      
    return this._http.get(this._apiEndpoints.apiEndpoint + '/country/phone')
            .map(res => res.json());
    }


getCountryNameAndPrefix(): Observable<Array<Config.phonePrefix>> {
    return this.getPhonePrefix().combineLatest(this.getCountryName(),
        (phoneData, nameData) => {
            let resultData:Config.phonePrefix[] = [];
            Object.keys(nameData).forEach((key) => {
                let resultItem:Config.phonePrefix = {
                   countrycode: key, 
                   countryname: nameData[key], 
                   countryprefix: phoneData[key]
                };
                resultData.push(resultItem);
                resultData.sort((a,b) => {
                    if(a['countryname'] < b['countryname']) {
                        return -1;
                    } else {
                        return 1;
                    }
                });
            });
             return resultData;
        });
 }
}

1 个答案:

答案 0 :(得分:3)

您没有调用静态combineLatest,因此您的导入应为:

import "rxjs/add/operator/combineLatest";

请注意,import使用operator而不是observable