我使用的是爱奥尼亚平台上的SQLStorage.remove函数返回一个promise .在我的代码中,我需要删除多个值.当这些都完成后,我需要执行一些代码.

我如何等待所有这些,然后执行回调函数?

Code:

removeAll() {    
  this.storage.remove(key1);
  this.storage.remove(key2);
  this.storage.remove(key3);    
}

全部嵌套是一种糟糕的做法,因此我正在寻找一个像样的解决方案:)

removeAll() {
  return this.storage.remove(key1).then(() => {
    this.storage.remove(key2).then(() => {
      this.storage.remove(key3);        
    });
  });
};

推荐答案

你可以用

removeAll() {
  Promise.all([
    this.storage.remove(key1),
    this.storage.remove(key2),
    this.storage.remove(key3),
  ]).then(value => doSomething());

另见第https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

Angular相关问答推荐

添加@ nx/webpack插件 destruct 了Nativescript构建

在不使用散列(#)路由的情况下刷新Angular 8的SPA时,删除404错误

在Angular 多选下拉菜单中实现CDK拖放排序的问题

Angular 懒惰地加载一个服务

ngRouterOutlet和组件生命周期使用自定义模板渲染的问题

相同的 Angular 代码在生产环境中停止工作

ngrx 效果等到从初始值以外的其他状态收到响应

如何在 Angular14 中创建带有验证的自定义输入组件?

Cypress 12.8.1 无法使用条纹元素 iframe

带有Angular 中断的进度条

清除Angular2中的输入文本字段

*ngIf 和 *ngFor 在 元素上使用

visibility:hidden

Angular 4:InvalidPipeArgument:管道AsyncPipe的[object Object]

请求 http.GET 时发送的 Angular2 OPTIONS 方法

如何手动延迟加载模块?

Failed to execute 'setAttribute' on 'Element': ']' is not a valid attribute name

Angular:找不到不同的支持对象[object Object]

找不到模块angular2/core

如何在 Angular 2 中取消 HTTPRequest?