Angular 当承诺不';有空吗?

Angular 当承诺不';有空吗?,angular,promise,observable,Angular,Promise,Observable,在这些示例中,所有代码都使用简单的方法完成,其中busy==promise onClickTwo() { const busy = new Promise<any>((resolve) => { setTimeout(() => { resolve(); }, 5000); }); this.busyConfigTwo.busy = [busy]; } onClickTwo(){ const busy=新承诺((解析)=>{ 设置

在这些示例中,所有代码都使用简单的方法完成,其中busy==promise

onClickTwo() {
  const busy = new Promise<any>((resolve) => {
    setTimeout(() => {
      resolve();
    }, 5000);
  });
  this.busyConfigTwo.busy = [busy];
}
onClickTwo(){
const busy=新承诺((解析)=>{
设置超时(()=>{
解决();
}, 5000);
});
this.busyConfigTwo.busy=[busy];
}
但在我使用的代码库中,没有一个调用是通过承诺完成的,而是通过Observable()完成的


如何将订阅此IBusyConfig.busy的用户链接到一起,以使ngBusy正常运行?

您始终可以将承诺转换为可观察,反之亦然。要将Observable转换为promise,您只需调用Observable上的
toPromise
方法。e、 g

//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);
  });
有关更多信息,请参阅此

此外,我看到除以下承诺外,
ngBusy
还接受订阅。因此,您还可以执行以下操作:

import {  of } from 'rxjs';
onClickTwo() {
  this.busyConfigTwo.busy = of(['whatever']).subscribe();
}

你在举什么例子?您可以使用普通RxJS实现类似的功能谢谢。你的帖子帮助我前进,让我们的代码以正确的方式工作。特别是“.busy=…subscribe()”。为了尽量减少对代码的更改,我只需“this.subscription=ourObservable.suscribe();”然后this.busyConfig.busy=[this.subscription];'我唯一的问题是垫子旋转器不旋转。