简体   繁体   English

如何从有前景的函数中返回可观察到的

[英]how to return observable from function that has a promise

I have a function with a promise in it. 我有一个承诺的功能。 I would like the function to return observable when the promise occur. 我希望函数在诺言发生时返回observable。 See my code: 看我的代码:

  public exportAsExcel() : Observable<void>
  {
    let workbook = new Workbook();
    .....
    ......
    workbook.xlsx.writeBuffer().then((data) => 
    {
        this.doSomething(data);
        return of();
    });

  }    

Use from , which turns your promise to an observable: 使用from ,这会使您的承诺变为可观察的:

import { from } from 'rxjs';
import { map } from 'rxjs/operators';

// ...

return from(workbook.xlsx.writeBuffer()).pipe(
 map(...)
)
return new Observable(obs=>{

       let workbook = new Workbook();
        .....
       ......
       workbook.xlsx.writeBuffer().then((data) => 
       {
          this.doSomething(data);
          return obs.next(data);
        });
    })

Or using rxjs from and map 或使用rxjs frommap

return from(workbook.xlsx.writeBuffer()).pipe(map(data => {
   // process something
   return dataTransformed
}))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM