我在服务中有两个这样的观察点
return Observable.forkJoin(
this.http.post(this.baseUrl, JSON.stringify(user), this.serverConfig.getJsonHeader()),
this.awsService.uploadData(params)
)
我在组件中订阅了它们
.subscribe(
data => {
console.log('data[0]',data[0]);
console.log('data[1]',data[1]);
}
);
和我的uploadData
职能,
uploadData(params: any): Observable<any> {
return Observable.of(
this.getBucket().upload(params,
(error, resp) => {
console.log('error', error);
console.log('resp', resp);
}
)
)
}
问题是我无法在订阅运行之前运行该回调函数,它总是在订阅之后运行,所以任何人都可以解释在订阅之前我应该使用哪种方式运行回调。
提前致谢。
最终我能够解决这个问题。我本可以使用promise,而不是像这样的可观察的
uploadData(params: any) : Promise<any>{
return new Promise((resolve, reject) => {
this.getBucket().upload(params, (err, data) => {
if (err)
reject(err);
else
resolve(data);
});
});
}
并像这样编辑fork
Observable.fromPromise(this.awsService.uploadData(params))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句