在使用TypeScript的Angular 1中,我能够创建服务,我知道哪种返回类型我会得到一个数字数组或一个Person对象:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.example.mukesh.airpollution"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.1.1'
compile files('libs/jsoup-1.8.3.jar')
}
dependencies {
compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1'
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.google.maps.android:android-maps-utils:0.4+'
compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.loopj.android:android-async-http:1.4.4'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.android.support:design:23.1.1'
}
在Angular 2中,我创建了以下服务,到目前为止工作正常,但我不知道在哪里可以设置一个完全类型的返回类型,如Angular 1中的IPromise,在我的情况下是一个数组人员。
public addAges(ages: number[]) : ng.IPromise<number[]> {
return this.$http.post('Proxy/AddAges',ages)
.then((response: ng.IHttpPromiseCallbackArg<number[]>) : number[]
=> { return response.data; });
}
答案 0 :(得分:2)
我想这就是你想要的:
import { Observable } from 'rxjs/observable';
import 'rxjs/add/operator/map';
...
getPersons(name:string):Observable<number[]> {
return this._http.get(`Home/GetPersons?name=${name}`)
.map((res : Response) => res.json());
}