Функция, объявленный тип которой не является ни "void", ни "any", должна возвращать значение
в моем приложении angular2 у меня есть служба, которая отправляет запрос get на url.
вот мои услуги:
import {Http} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import {Injectable} from '@angular/core';
import {Gallery} from './gallery';
@Injectable()
export class InstagramService{
constructor(private _http:Http){
}
getGallery(username: string) : Observable<Gallery> {
var result=this._http.get("https://www.instagram.com/"+username+"/media/").map(res => res.json());
console.log(result);
return result;
}
}
Я определил тип возврата как Observable<Gallery>
, но он жалуется, что:
A function whose declared type is neither 'void' nor 'any' must return a value
что происходит с этим кодом?
1 ответов
если объявить тип возврата, то почему бы не вернуть все?
обычно это то, что вы хотите в этом случае.
getGallery(username: string) : Observable<Gallery> {
return this._http.get("https://www.instagram.com/"+username+"/media/").map(res => res.json());
}
var result
вероятно, не то, что вы ожидаете в любом случае, потому что _http.get(...)
возвращает Observable
не является ценностью.
абонент getGallery()
можно подписаться, чтобы получить уведомление, когда значение прибывает.
instagramService.getGallery.subscribe((result) => this.galleryData = result);
когда значение прибывает, то (result) => this.galleryData = result
и result
назначена galleryData
вашего текущего компонента или услуга.