日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP Spartacus 中的 Commands and queries

發布時間:2023/12/19 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP Spartacus 中的 Commands and queries 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

命令和查詢提供了一種強大且簡化的方式來處理狀態(換句話說,加載和緩存),并針對后端系統執行操作。 這類似于 React Query 和 SWR 等庫在單頁應用程序中處理來自 API 的狀態問題的方式。 前端應用狀態很大一部分來自后端。 經常用于狀態管理的 Redux 架構在創建時并未考慮到這種類型的狀態,并且需要大量樣板來支持它。 不同類型的狀態需要不同的解決方案,并且命令和查詢旨在處理來自 Spartacus 中的 API 的狀態。 在很多情況下,命令和查詢將取代默認 Spartacus 庫的 NgRx,并使大多數實現更簡單,具有更好、更一致的錯誤處理,同時還利用 Spartacus 事件框架。

什么是 command

命令表示可以更改系統狀態的操作,通常通過向后端發出 REST 調用。 命令可以返回結果,并且可以在考慮執行策略的同時執行。 每個命令執行都會返回一個 observable,它會發出(帶有可選的成功結果),然后在命令完成時完成,或者在命令執行導致錯誤時拋出錯誤。

訂閱結果 observable 并不能確定命令的執行,因此它是可選的。、

command definition

通過存儲 CommandService.create 工廠方法調用的結果,可以將命令定義為類的屬性。

命令具有以下參數:

  • 調度命令的函數(通常是對連接器的調用)
  • 一個選項對象(通常用于指定策略)

下面是一個例子:

protected updateCommand: Command<{ details: User }> = this.command.create((payload) =>this.userIdService.takeUserId(true).pipe(switchMap((uid) =>this.userProfileConnector.update(uid, payload.details)),{strategy: CommandStrategy.Queue,});
  • Parallel 并行執行所有命令。
  • Queue 將命令排隊并按順序執行(這是默認策略)。
  • CancelPrevious 開始新的命令執行,如果尚未完成則取消上一次執行(上一次執行的結果流將在不發射的情況下完成)。
  • ErrorPrevious 開始新的命令執行,如果尚未完成,則為上一個命令引發錯誤(上一次執行的結果流將引發錯誤)。

Exposing Commands in Facade Services

命令旨在公開為調用可以在命令類上執行的方法,并返回可觀察的結果。 如前所述,調用可以簡單地調用一個方法來執行命令。 訂閱結果是可選的。 下面是一個例子:

update(details: User): Observable<unknown> {return this.updateCommand.execute({ details });}

總結

以上是生活随笔為你收集整理的SAP Spartacus 中的 Commands and queries的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。