Observable.bindCallback私はそれに加入している場合にのみ値を返す直接 つまり、これは正常に動作します:Observable.bindCallbackにのみ値を返す直接
return this.store.select(store => store.appDb.appBaseUrl)
.take(1)
.mergeMap(baseUrl => {
const url = `${baseUrl}?command=GetCustomers&resellerUserName=aaa&resellerPassword=bbbb`;
return this.http.get(url)
.map(res => {
var xmlData = res.text()
const boundCallback = Observable.bindCallback(this.processXml, (xmlData: any) => xmlData);
return boundCallback(this, xmlData)
.subscribe((x) => {
return x;
});
})
})
しかし、私は、サブスクリプションを避けるために必要があります私は私のために@effect
自動サブスクライブの内部で実行していますので、私は実行すると:
return this.store.select(store => store.appDb.appBaseUrl)
.take(1)
.mergeMap(baseUrl => {
const url = `${baseUrl}?command=GetCustomers&resellerUserName=aaa&resellerPassword=aaa`;
return this.http.get(url)
.map(res => {
var xmlData = res.text()
const boundCallback = Observable.bindCallback(this.processXml, (xmlData: any) => xmlData);
var d:any = boundCallback(this, xmlData)
return d;
}).map(d=>{console.log(d)})
})
ではなく、今の値を取得、私は取得しています:
をこれがdである:私はあなたはそれが(明らかに私はそれをテストしていない)、このようになるはずです何をしたいのか理解していれば
よろしく
ショーン
は何これはとにかくやることになっていますか?本当にmap()演算子から 'Observable'や' Subscription'を返そうとしていますか?ステートメント 'return x;' 'subscribe()'の中には何もしません。 – martin
私は値を返す必要があります、this.processXmlはコールバックと値をとり、結果を返します。私は約束を得てPromiseObservableを取得しようとしましたが、値を取得しませんでした:/ – born2net