- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何取消正在运行的 store.dispatch(xxx)
行动,这样底层的http请求也被取消了吗?
我试过 .unsubscribe()
来自 store.dispatch(new FetchSomeStuffOverHttp())
调用并期望底层的http请求也被取消。
但它会继续运行,即使 httpClient
的 observable 由操作返回:
@Action(FetchStuffOverHttp)
fetchStuffOverHttp({ patchState }: StateContext<AuftragStateModel>) {
return this.httpClient.get(...)
.pipe(
tap((...) => { patchState(...) })
)
}
store.dispatch(xxx).subscribe().unsubscribe()
是预期的行为吗?不是取消订阅/取消
httpClient
可以观察到吗?
{ cancelUncompleted: true }
选项将取消下层 http 请求。
最佳答案
问:如何取消正在运行的 store.dispatch(xxx) Action ,从而使底层的 http 请求也被取消?
A: 如果底层的 http 请求在 Action 返回的可观察链中(即异步 Action ),那么使用 { cancelUncompleted: true }
调度相同的 Action 如果它仍在运行,将取消先前的调度操作。
如果您想取消正在运行的异步操作而不再次分派(dispatch)给它,您将不得不自己从操作的 observable 处理它(例如,使用适当的 rxjs 模式,如 takeUntil()
运算符)。
问:store.dispatch(xxx).subscribe().unsubscribe() 不是取消订阅/取消 httpClients observable 是预期的行为吗?
答:是的。 AFAIK,这是设计和预期的行为。
关于angular - 如何取消 ngxs 调度操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60990332/
现场演示 https://stackblitz.com/edit/angular-vw78jf 我的 ngxs 状态中有 ToppingsStateModel export interface Top
在 NGXS 中,我们有 getState() 来获取当前状态。有没有办法从商店获取以前的状态?我正在寻找解决方案,因为我必须实现撤消/重做类型的功能。谢谢! 最佳答案 您可以使用 store.sna
我将 NGXS 状态定义为数组。 interface Sample { name: string; age: number; } @State({ name: 'samples', def
当我向状态添加一些新数据时,新数据不会出现在我的日志或 DevTool Ui 中。 是否有一种机制可以重置状态以便数据出现。似乎仍在显示某些缓存中的旧数据。 谢谢 最佳答案 我更喜欢使用这个重置插件;
我正在阅读 NGXS例如,它看起来像这样: export class NewState { static readonly type = '[State] New'; construc
我有一个异步 ngxs 操作 throwsError() . 我希望默认错误处理机制忽略这个抛出的错误,因为我将通过 ofActionErrored() 在我的代码中处理它。 .但是,对于其他操作,仍
我正在使用 NWRL NX,其中一个库使用 NXGS (3.6.2) 作为应用程序的共享状态库。 运行应用程序时,我收到警告 export 'StateContext' was not found i
我想在应用程序加载时设置 ngxs 状态。执行此操作的最佳方法是什么? 例如在一个有角度的 APP_INITIALIZER 中解析状态对象,然后 ??? 最佳答案 您可以通过 ngxsOnInit 生
如何在 NGXS 中刷新浏览器选项卡后保持状态? ngrx版本的问题被问到here ? 最佳答案 您可以使用存储插件保存状态: https://ngxs.gitbook.io/ngxs/plugins
我是一名新手,正在使用 ngxs。 在文档上 There are caveats to Sub States . 这仅适用于嵌套对象,因此尝试在嵌套数组对象上创建存储将不起作用。 子状态只能使用一次,
我对 NGXS Store 以及状态类层次结构中记忆化的 @Selector() 的使用有疑问。 解决下述问题的建议方法是什么?NGXS 商店文档没有提供这方面的指南/建议。 鉴于此示例状态设置, e
如何在 NGXS 中刷新浏览器选项卡后保持状态? ngrx版本的问题被问到here ? 最佳答案 您可以使用存储插件保存状态: https://ngxs.gitbook.io/ngxs/plugins
我对 Angular 中类似 redux 的模式印象深刻,并且迷上了 NGXS(我将其与 NGRX 和 Akita 进行了比较,但选择了 NGXS)。 我知道 NGXS 在应用程序中存储了所有以前的状
我正在尝试用现有的 ngxs 状态运算符替换或插入数组项 (upsert)。我目前正在使用以下 iif 语句。有更简单的方法吗? setState( patch({ contractLis
我正在尝试在我的应用程序中使用 NGXS 状态运算符,但我无法找到如何使用它们进行稍微复杂的更新的好示例。 例如,NGXS 的文档显示了更新此状态的示例: @State({ name: 'anim
我对状态管理的概念很陌生,当然还有 ngxs。我对我的 TypeScript/JavaScript 也不太有信心。目前,我正在构建身份验证。好消息是官方文档有一些身份验证操作的示例,但我无法理解一些内
我想为我的注册做这样的事情。 单击注册按钮时,将执行以下操作: this.store.dispatch(new Register(user)) .subscribe(response => {
我在我的 Angular 8 应用程序中使用 NGXS。目前,所有操作处理程序(带有 @Action 装饰器的函数)都在 state.ts 中实现,使得文件太长而难以阅读。我设法使用 @Selecto
可能有人知道为什么 NGXS 状态不能在 HttpClient POST 请求中改变。 ctx.patchState() 仅适用于 HTTP POST 请求之外。 @Action(SignIn
这是一个simple example . 在 console.log 中,状态已正确更新。模板也已正确更新。 在 redux 开发工具中,状态会随着调度的延迟而更新。 为了更清楚,初始状态是: {da
我是一名优秀的程序员,十分优秀!