【发布时间】:2018-03-05 03:26:37
【问题描述】:
我有一个 Angular 服务,我想返回一个带有类型数组的承诺,但我总是收到这个错误:src/app/city.service.ts(52,22): error TS2339: Property 'places'在“CityService”类型上不存在。 我不知道我做错了什么。
getPlace(coordinates : Coordinates) {
// var places : Array<Place> = [];
let promise = new Promise((resolve, reject) => {
this.http.get('http://localhost:3000/api/place/', {params: coordinates})
.toPromise()
.then(
res => { // Success
var places: Array<Place>;
this.places = res.results.map(item => {
var place = new Place();
place.place_id = item.place_id;
place.name = item.name;
place.vicinity = item.vicinity;
place.coordinates = new Coordinates();
place.coordinates.latitude = item.geometry.location.lat;
place.coordinates.longitude = item.geometry.location.lng;
return place;
});
resolve(this.places);
},
msg => { // Error
reject(msg);
}
);
});
return promise;
}
【问题讨论】:
-
您的服务是否有一个名为
places的字段,或者您的函数是否应该使用places而不是this.places? -
为什么要手动创建一个可观察的对象,在内部 http 解析时解析,在内部拒绝时拒绝?你为什么不直接使用 http 承诺?
-
@NoémiSalaün 菜鸟失误
-
@NoémiSalaün 如果我不想创建 observable,我可以使用内部 http 解析吗? codecraft.tv/courses/angular/http/http-with-promises
-
@John 请看下面我的回答
标签: angular typescript promise