getUsableToken() {
let platformName = "abc";
let platformId = "123123";
return this.http.get('http://localhost:17001/platform/' + platformId + '/key?name=' + platformName).map(res => res.json())
.subscribe(data => {
let secretKey = data.payload.platformInfo.key;
return this.http.get('http://localhost:17001/platform/' + platformId + '/token?name=' + platformName + '&key=' + secretKey).map(res => res.json())
.subscribe(data => {
return data.payload.token;
}, err => {
console.log(err);
});
},
err => {
console.log(err);
});
}
このコードではdata.payload.token
に戻したいと思います。どうやってするか?どんな助けもありがとう。httpリクエスト内のhttpリクエスト内で受信した結果を、イオン2フレームワークで角度2を使用して返す方法は次のとおりです。
import 'rxjs/add/operator/mergeMap';
//....
getUsableToken() {
return this.http.get('url')
.map(data => {
let secretKey = data.json().payload.platformInfo.key
return secretKey;
})
// where 'key' is the parameter you need for the second call
.flatMap(key => this.http.get('url').map(data => {
let token = data.json().payload.token;
return token;
}))
}
、今あなたが購読:2番目の呼び出しは最初の呼び出しの結果に依存するので、このようなものであるので、あなたは何ができるか
これは現在何をしていますか? –
オブジェクトを送信しています。私はthis.jwtToken = this.authService.getUsableToken()のようにこの値を取得しています。 –
ああ、これらのリクエストは非同期です。すぐに何かを「返す」ことはできません。 'getUsableToken()'は 'this.http.get(...)。subscribe(...);から' Subjectを返しています '' data.payload.token'や約束を含む新しいObservableを作成することができました –