首页 > 解决方案 > 什么是等价的承诺在可观察的?

问题描述

我正在使用有角度的打字稿,并尝试从可观察到的返回一个承诺。

这样做的正确方法是什么?

我试过了:

of(EMPTY).toPromise() // error: Promise<Observable<never>>' is not assignable to type Promise<void>

of(null).toPromise() // no error but not sure if it is the right way

of().toPromise // error: Promise<Observable<unknown>>' is not assignable to type Promise<void> 

更新:

// 这是声明它的接口

export interface CustomStoreOptions extends StoreOptions<CustomStore> {   
   /** Specifies a custom implementation of the remove(key) method. */
    remove?: ((key: any | string | number) => Promise<void> | JQueryPromise<void>);   
}

所以它被称为:

let store = new CustomStore({     
        remove: key => {
          // return ...
        }
      });

标签: angulartypescriptpromiseobservable

解决方案


您可以将其编写如下以获得等效的Promise<void>

 of(void(0))

您还可以创建一个不发出数据的主题

 const s = new Subject<void>();
 s.next(void(0));

推荐阅读