Angular 2: Convert Observable to Promise

后端 未结 7 666
耶瑟儿~
耶瑟儿~ 2020-11-27 18:00

Q) How do I convert the following observable to a promise so I can call it with .then(...)?

My method I want to convert to a promise:

7条回答
  •  渐次进展
    2020-11-27 18:22

    A lot of comments are claiming toPromise deprecated but as you can see here it's not.

    So please juste use toPromise (RxJs 6) as said:

    //return basic observable
    const sample = val => Rx.Observable.of(val).delay(5000);
    //convert basic observable to promise
    const example = sample('First Example')
      .toPromise()
      //output: 'First Example'
      .then(result => {
        console.log('From Promise:', result);
      });
    

    async/await example:

    //return basic observable
    const sample = val => Rx.Observable.of(val).delay(5000);
    //convert basic observable to promise
    const example = await sample('First Example').toPromise()
    // output: 'First Example'
    console.log('From Promise:', result);
    

    Read more here.

    And please remove this wrong claim saying toPromise is deprecated.


    Note: Otherwise you can use .pipe(take(1)).toPromise but as said you shouldn't have any problem using above example.

提交回复
热议问题