我有一个Angular 函数,在那里我需要等待用户的响应,但我没有任何成功.我认为我应该使用"SUBSCRIBE()",但不完全理解如何以及何时使用它.我的呼叫当前如下所示:

TheAnswer:boolean=await showConfix Dialog("确认更改!","您确定要取消更改吗?);

    async showConfirmDialog(title: string, message: string) {

var answer: boolean = false;

  this.dialog
  .confirmDialog({
    title: title,
    message: message,
    confirmCaption: 'Yes',
    cancelCaption: 'No'
  })
  .subscribe((yes) => {
    if (yes) {
      answer = true;
    }
    else {
      answer = false;
    };
  });

  console.log('selected answer ' + answer)
  return answer;
}

}

推荐答案

不是应该是这样的吗?

我们使用等待来解析promise ,如果它是可观察的,我假设它是可观察的,我使用lastValueFrom将其转换为promise ,这样await就会起作用,如果confirmDialog返回promise ,那么就没有必要使用lastValueFrom

import { lastValueFrom } from 'rxjs';
....
async showConfirmDialog(title: string, message: string) {
  const answer = await lastValueFrom(this.dialog
    .confirmDialog({
      title: title,
      message: message,
      confirmCaption: 'Yes',
      cancelCaption: 'No'
    }))
  console.log('selected answer ' + answer)
  return answer;
}
...

调用该方法将类似于

const theAnswer: boolean = showConfirmDialog("Confirm Changes!", "Are you sure you want to cancel your changes?");

Typescript相关问答推荐

返回对象的TypScript构造函数隐式地替换This的值来替换super(.)的任何调用者?

APP_INITIALIZER—TypeError:appInits不是函数

typescribe不能使用值来索引对象类型,该对象类型满足具有该值的另一个类型'

如何缩小变量访问的对象属性范围?

类型脚本类型字段组合

具有继承的基于类的react 组件:呈现不能分配给基类型中的相同属性

打字脚本中泛型和直接类型重新映射的不同行为

类型脚本基于数组作为泛型参数展开类型

如何在已知基类的任何子类上使用`extends`?

在HighChats列时间序列图中,十字准线未按预期工作

ANGLING v17 CLI默认设置为独立:延迟加载是否仍需要@NgModule进行路由?

使用Redux Saga操作通道对操作进行排序不起作用

具有自引用属性的接口

FatalError:Error TS6046:';--模块分辨率';选项的参数必须是:'; node ';,'; node 16';,'; node

如何过滤文字中的类对象联合类型?

当传递带有或不带有参数的函数作为组件props 时,我应该如何指定类型?

来自枚举的<;复选框和组件列表

使用泛型以自引用方式静态键入记录的键

Typescript:是否将联合类型传递给重载函数?

如果父级被删除或删除,如何自动删除子级?