<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
最近在開發新feature,週五需要版本合併,上線。可是從DevTool Network請求記錄來看,每次介面載入完畢,非同步條件觸發,filter api 都是呼叫2遍。
根據紀錄檔,定位帶有嫌疑code位置。 code多請求一次,對伺服器、使用者體驗都是不能接受的,版本是不可能上線的。
問題可不可以本地復現?
可以,那就好辦了
是不是,條件觸發了2遍 ?
# 留下的程式碼大致如下 private searchCondition$ = new Subject(); this.searchCondition$.next({ ...(searchParam || {} ) ...param, });
可是...解構程式碼是同步操作,之後才執行到next。多新增一個...試試,不過還是隻有2次呼叫
this.searchCondition$.next({ ...(searchParam || {} ) ...param, ...{a:1,} });
既然next非同步觸發不行,程式碼也不復雜,就重寫直接同步呼叫
this.requestData({ ...(searchParam || {} ) ...param, });
經過測試,還是呼叫2次,那麼問題就不是出現在發的地方
檢視介面監聽也就是subscribe()的地方
# 在html自定義元件中存在兩處這樣的程式碼 <cus-component [dataset]="dataset$ | async "> </cus-component> # 這是ts監聽地方 this.dataset$ = this.getDataLine(searchParam).pipe( switchMap((res) => { ... return of(res) }), )
上述程式碼,通過註釋掉一處html參照,編譯後發現,呼叫次數變為1.故出現問題的程式碼就算定位到了。那麼怎麼fix?
修改程式碼,不監聽http請求返回,直接把得到的資料返回給介面展示
const sub = this.getDataLine(searchParam).pipe( tap((res) => { ... this.dataset$ = of(res) }), ) //新增subscribe控制程式碼管理,在component destory時候,銷燬釋放 this.subs?.add(sub);
新增設定,遮蔽掉多次呼叫結果
//設定利用最後一次的值 shareReplay(1)
Expression Changed After Checked
原因:
只有開發環境才有,用於提示html繫結的變數多次修改了,介面還沒來及更新。
解決辦法:
TypeError: You provided an invalid object where a stream was expected.
You can provide an Observable, Promise, Array, or Iterable
可能原因:
最直接的從錯誤字面意思來,就是提供的物件,是一個不可用的物件,需要fix
直接在報錯的時候,debug,跳轉到報錯的位置,檢視stack裡面的內容,裡面會清晰告訴你那裡有錯誤。
常見的解決辦法
通過檢視檔案、debug,把控制檯的錯誤一個個fix了,版本最終部署上線。出現錯誤,不要怕,不過上線上晚了,確實有點影響哈~ 。
到此這篇關於Rxjs監聽精確使用版本上線的文章就介紹到這了,更多相關Rxjs監聽版本上線內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45