javascript - Observable 成功后如何解析() Promise

标签 javascript typescript ionic2 angular-promise angular2-observables

我有这样的场景。

// this is in myService.ts
public myFunction() {
 return new Promise((resolve) => {
  let click = Observable.fromEvent(window, "click");

  this.myStream = click
    .map(() => Observable.timer(10000))
    .switch()
    .subscribe(() => {
      // show alert here
    });

 });
}

// this is in home.ts page

ngOnInit() {

 this.myService.myFunction().then(() => {
 //simulate click at start
    let event = new MouseEvent("click", {bubbles: true});
    this.renderer.invokeElementMethod(
      this.simulateClick.nativeElement, "dispatchEvent", [event]);
 });
}

我的问题是在哪里编写resolve()。我需要的是 Observable.fromEvent 成功,然后进行点击模拟。如果我写resolve(),假设在let click = Observable.fromEvent(window, "click");行下,那么首先模拟点击,然后是Observable.fromEvent。

最佳答案

对于 angular2 observables,简单干净的方法是将 Observable 转换为 Promise 并返回。

下载toPromise extension如果它不存在。

import 'rxjs/add/operator/toPromise';

public myFunction() {
    return Observable.fromEvent(window, "click")
        .map(() => Observable.timer(10000))
        .switch()
        .toPromise();
}

关于javascript - Observable 成功后如何解析() Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45500896/

相关文章:

c# - asp updatepanel 中的文本框焦点 - 使用断点但并非没有

typescript 2.8 排除 : possible to supercharge the 'partition' type?

javascript - 如何通过在 typescript 中调用函数来关闭bootstrap 4模式

javascript - 如何只更改包含对象的 React useState 中的一个值并将不同的值分配给其余值?

ionic-framework - ios 上未显示 ionic 3 验证边框

angular - 从 google.maps.event.listener 调用我的函数

android - 无法删除 cordova 插件

javascript - 如何修复图像重叠 Bootstrap

javascript - 未捕获的类型错误 : Cannot read property - Though property exists

javascript - 如何在 JavaScript 中使用 Array.fill 创建 0...499?