升级到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;
});
}
}
答案 0 :(得分:3)
您没有调用静态combineLatest
,因此您的导入应为:
import "rxjs/add/operator/combineLatest";
请注意,import
使用operator
而不是observable
。