在Promise中返回Observable [英] Return Observable inside the Promise
本文介绍了在Promise中返回Observable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您能告诉我如何在这里退回Observable
吗?我尝试了很多方法.但是还没有成功.
Could you tell me how can I return Observable
here? I have tried many ways. But no success yet.
[ts]声明的类型既不是'void'也不是'any'的函数必须 返回一个值.
[ts] A function whose declared type is neither 'void' nor 'any' must return a value.
deleteInvite(inviteId):Observable<HttpResponse<Object>> {
this.getHttpHeader().then(headers => {
return this.http.post(this.apiURL + "/deleteInvite", inviteId, { observe: "response", headers: headers })
}).catch(err => {
console.error(err);
});
}
async getHttpHeader() {
const accessToken = await this.getJWTToken();
let headers = new HttpHeaders().set('Authorization', `Bearer ${accessToken}`);
return headers;
}
推荐答案
FOR rxjs版本:6.0.0起
import { from } from 'rxjs';
deleteInvite(inviteId):Observable<HttpResponse<Object>> {
return from(this.getHttpHeader()).pipe(
switchMap(headers => {
return this.http.post(this.apiURL + "/deleteInvite", inviteId, { observe: "response", headers: headers })
}),
catchError(err => {
console.error(err);
})
);
}
对于旧版本的rxjs:
For older versions of rxjs:
使用fromPromise
import { fromPromise } from 'rxjs/observable/fromPromise';
deleteInvite(inviteId):Observable<HttpResponse<Object>> {
return fromPromise(this.getHttpHeader()).pipe(
switchMap(headers => {
return this.http.post(this.apiURL + "/deleteInvite", inviteId, { observe: "response", headers: headers })
}),
catchError(err => {
console.error(err);
})
);
}
这篇关于在Promise中返回Observable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文