Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用http服务从操作(NGXS)返回值

使用http服务从操作(NGXS)返回值
EN

Stack Overflow用户
提问于 2019-09-06 10:55:39
回答 1查看 3.7K关注 0票数 4

还有其他更干净的方法可以通过操作(NGXS)从http服务返回值吗?还是我们应该总是更新“结果”状态,以便在您返回时进行咨询?

下面的代码工作,非常接近于文档。然而,在我看来,它并不是很干净。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export class DeleteAction {
  static readonly type = '[Test] Delete';
  constructor(public id: number) { }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@State<TestStateModel>({
  name: 'test',
  defaults: {
    result: null
  }
})
export class TestState {

  constructor(
    private testService: TestService) {
  }

  @Selector()
  static getResult(state: TestStateModel): NotificationResult {
    return state.result;
  }

  @Action(DeleteAction)
  public delete({ patchState }: StateContext<TestStateModel>, { id }: DeleteAction) {
    return this.testService
      .delete(id)
      .pipe(
        take(1),
        tap(result => {
          patchState({ result });
        })
      );
  }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Component({
  templateUrl: './test.component.html'
})
export class TestComponent {

    @Select(SubjectState.getResult) result$;

    private delete(id: number): void {
    this.isLoading = true;
    this.store.dispatch(new DeleteAction(id))
      .pipe(withLatestFrom(this.result$))
      .subscribe(([_, r]) => {
        const result = r as NotificationResult;
        if (result.isValid) {
          // ...
        } else {
          // ...
        }
        this.isLoading = false;
      });
  }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export interface NotificationResult {
  isValid: boolean;
  messages: NotificationMessage[];
}

由于除了调用"Delete“方法之外,我不会使用”结果“,因此似乎没有必要为此目的创建一个状态。

还有其他更优雅的方式吗?

EN

回答 1

Stack Overflow用户

发布于 2019-09-07 11:05:24

如果不将删除结果链接到调度,则会更干净。相反,目前采用的删除方法是:

  1. 分派删除操作
  2. 等待操作完成
  3. 查看状态的最新值。
  4. 对此作出反应

你可以:

  1. 让delete方法分派delete操作
  2. 订阅对$result的更改(例如在init方法中),并对所得到的更改做出适当的反应

这在我看来更干净。有什么想法?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57827267

复制
相关文章
Jupyter Notebook 更改主题
Customize your Jupyter Notebook Theme in 2 lines of code
莫听穿林
2022/02/16
8210
Jupyter Notebook 更改主题
更改WordPress主题全局字体
加入以下自定义CSS即可 /* 您可以在此处加入您的CSS。 点击上方的帮助图标来了解更多。 */ /*字体设定*/ *:not([class*="icon"]):not(i) { font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hiragino Sans GB", "Microsoft Yahei", sans-serif !important; } /*字体阴影*/ *{text-shadow: 0
回忆大大
2021/08/09
1.2K0
更改WordPress主题全局字体
pycharm 风格_python主题更改
下载好的插件是一个zip文件,在pycharm的Plugins栏中选择install plugins from disk,选择插件后重启即可
全栈程序员站长
2022/09/27
7690
pycharm 风格_python主题更改
WordPress 3.4 发布:自定义主题变得更加容易
WordPress 发布了 3.4 版本,这个版本显著改善了 WordPress 的主题定制功能,自定义头部,以及图片标题等方面。
Denis
2023/04/14
2560
WordPress 3.4 发布:自定义主题变得更加容易
wordpress子比主题更改首页样式全宽度[美化教程]
在主题目录下“func.php”下面添加下面代码,这是我修改后的“图文封面卡片”小工具
七辰
2023/10/06
1.7K0
wordpress子比主题更改首页样式全宽度[美化教程]
更改Linux终端颜色主题【Linux-Command line】
如果你一整天都盯着终端,自然想让它变得赏心悦目。 对美的判断因人而异,自CRT串行控制台问世以来,终端已经走了很长一段路。 因此,很有可能你的软件终端窗口中有很多选项可以使你看到的内容主题化,不管你如何定义美。
QRosie
2019/11/24
9K0
更改Linux终端颜色主题【Linux-Command line】
gnome extensions 推荐 (fedora 28 常用gnome 插件备份)
当我们进行重新安装系统(fedora 28)的时候,需要初始安装一些 gnome 插件,来进行完善我们的使用。
西湖醋鱼
2020/12/30
3.8K0
安装Gnome桌面
sudo add-apt-repository ppa:tualatrix/ppa sudo apt-get install -f gnome-panel gnome gnome-shell gnome-menus gnome-session gdm
JNingWei
2018/09/28
4.4K0
【Matlab】MATLAB编辑器主题颜色更改(MATLAB Schemer)
MATLAB是一款好用的代码编辑器,但其默认的主题背景色是“刺眼的白色”,对于经常使用MATLAB工作的童鞋来说很不友好。其他的代码编辑器如VS Code、Pycharm都有黑色背景主题设置。
DevFrank
2024/07/24
1.2K0
【Matlab】MATLAB编辑器主题颜色更改(MATLAB Schemer)
ubuntu 手工安装gnome extensions
首先查看gnome shell 的version gnome-shell --version GNOME Shell 3.28.4 下载对应的版本。 查看这个扩展的uuid: unzip -c ./openweather-extension@jenslody.de.v94.shell-extension.zip metadata.json | grep uuid | cut -d \" -f4 # openweather-extension@jenslody.de 进入目录安装扩展 mkdir -p ~/.
超级大猪
2019/12/20
2.4K0
技术|使用 Ansible 管理你的工作站:配置桌面设置
在本系列第三篇(也是最后一篇)文章中,我们将使用Ansible自动化配置GNOME桌面设置。
知忆
2021/07/06
8390
使用 Ansible 管理你的工作站:配置桌面设置
在本系列第三篇(也是最后一篇)文章中,我们将使用 Ansible 自动化配置 GNOME 桌面设置。
星哥玩云
2022/07/28
5760
Ubuntu14.04 gnome3下gedit首选项消失如何修改gedit主题
该文章介绍了在Ubuntu 14.04下使用gnome3遇到的问题以及解决方案。主要包括忘记选择引导设备导致硬盘被格式化的问题,以及使用easyBCD设置启动项进入Ubuntu后出现Grub error: unknown filesystem的问题。文章还介绍了如何手动更改引导文件,以及更改主题和显示行号的方法。
Alan Lee
2018/01/02
2K0
Ubuntu14.04 gnome3下gedit首选项消失如何修改gedit主题
这款Typora主题惊艳到了我
typora相信大家都用过,很多人习惯了typora默认的github主题,但我今天看到一个主题。说实话激起了我要设计自己的一款主题的欲望。就有了今天的这个主题。
徐建国
2021/12/22
1.4K0
这款Typora主题惊艳到了我
博客园美化,更改外部主题,自定义JavaScript
在之前,我一直以为博客园他是那种万年不变的老旧风格,看着就有一种年代感,但是,昨天我莫名看到一个项目,我尝试进行了美化后,发现这玩意很好看啊。
JanYork_简昀
2022/05/18
1.2K0
博客园美化,更改外部主题,自定义JavaScript
扶我起来,前端还没倒下,我不能睡
长路漫漫,唯夜作伴。虽然一天的工作头昏脑胀,但是仍然放不下我心心念念的前端啊,扶我起来,我还可以学~
小闫同学啊
2019/12/17
8300
使用GNOME Tweaks工具定制Linux桌面的10种方法
您可以通过多种方法来调整Ubuntu,以自定义其外观和行为。 我发现最简单的方法是使用GNOME Tweaks Tool(GNOME优化工具)。 它也被称为GNOME调整或简单的调整。GNOME Tweaks 是可以调整 GNOME 的高级选项。
知忆
2021/06/09
4.9K0
Qt设置窗口不能更改大小及程序发布相关
参考:http://blog.sina.com.cn/s/blog_5e42f31a0100y760.html
繁花云
2018/07/31
1.3K0
Qt设置窗口不能更改大小及程序发布相关
WSL安装GNOME桌面教程
下载 VcXsrv Windows X Server download | SourceForge.net 并安装
小N同学
2023/03/16
4.6K0
WSL安装GNOME桌面教程
3.4 队列
1、和栈相反,队列是一种先进先出(FIFO)的线性表。它只允许在表的一端进行插入,而在另一端删除元素。
小林C语言
2019/07/12
2940

相似问题

如何删除Ubuntu 12.04中的gnome 3.4主题

30

我想从toreturn 12.04的gnome 3.6返回gnome 3.4

10

如何手动更改GNOME主题?

10

Gnome shell主题自动更改

10

Gnome-Shell 3.4主题在12.04中不起作用?

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文