最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Rxjs監(jiān)聽精確使用版本上線

 更新時間:2022年08月07日 09:33:03   作者:前端analysis  
這篇文章主要為大家介紹了Rxjs監(jiān)聽使用不精確版本上線晚3小時,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

導(dǎo)語

最近在開發(fā)新feature,周五需要版本合并,上線??墒菑腄evTool Network請求記錄來看,每次界面加載完畢,異步條件觸發(fā),filter api 都是調(diào)用2遍。

根據(jù)日志,定位帶有嫌疑code位置。 code多請求一次,對服務(wù)器、用戶體驗都是不能接受的,版本是不可能上線的。

思路

問題可不可以本地復(fù)現(xiàn)?

可以,那就好辦了

是不是,條件觸發(fā)了2遍 ?

注釋掉一個觸發(fā)條件

# 留下的代碼大致如下
private searchCondition$ = new Subject();
this.searchCondition$.next({
...(searchParam || {} ) 
...param,
});

...解構(gòu)是2次,是不是這里導(dǎo)致的?

可是...解構(gòu)代碼是同步操作,之后才執(zhí)行到next。多添加一個...試試,不過還是只有2次調(diào)用

 this.searchCondition$.next({
   ...(searchParam || {} ) 
   ...param,
   ...{a:1,}
 });

既然next異步觸發(fā)不行,代碼也不復(fù)雜,就重寫直接同步調(diào)用

this.requestData({
   ...(searchParam || {} ) 
   ...param,
 });

經(jīng)過測試,還是調(diào)用2次,那么問題就不是出現(xiàn)在發(fā)的地方

那就是監(jiān)聽的地方,觸發(fā)了2遍

查看界面監(jiān)聽也就是subscribe()的地方

# 在html自定義組件中存在兩處這樣的代碼
<cus-component [dataset]="dataset$ | async "> </cus-component>
# 這是ts監(jiān)聽地方
this.dataset$ = this.getDataLine(searchParam).pipe(
   switchMap((res) => {
       ...
       return of(res)
   }),
)

上述代碼,通過注釋掉一處html引用,編譯后發(fā)現(xiàn),調(diào)用次數(shù)變?yōu)?.故出現(xiàn)問題的代碼就算定位到了。那么怎么fix?

修改代碼,不監(jiān)聽http請求返回,直接把得到的數(shù)據(jù)返回給界面展示

 const sub = this.getDataLine(searchParam).pipe(
    tap((res) => {
        ...
        this.dataset$ = of(res)
    }),
 )
 //添加subscribe句柄管理,在component destory時候,銷毀釋放
 this.subs?.add(sub);

添加配置,屏蔽掉多次調(diào)用結(jié)果

//設(shè)置利用最后一次的值
 shareReplay(1)

拓展:

Expression Changed After Checked

原因:

只有開發(fā)環(huán)境才有,用于提示html綁定的變量多次修改了,界面還沒來及更新。

解決辦法:

  • 方法一:把code修改的地方,添加上setTimeout,延遲去刷新界面
  • 方法二: 針對code,改用Observable, html界面使用上async

You provided an invalid object

TypeError: You provided an invalid object where a stream was expected. 
You can provide an Observable, Promise, Array, or Iterable

可能原因:

最直接的從錯誤字面意思來,就是提供的對象,是一個不可用的對象,需要fix

解決辦法

直接在報錯的時候,debug,跳轉(zhuǎn)到報錯的位置,查看stack里面的內(nèi)容,里面會清晰告訴你那里有錯誤。

常見的解決辦法

  • 判定返回的對象是否undefined
  • 添加? or if等支持, 判定對象的方法調(diào)用,譬如 chart.draw() , chart不能為null,undefined.

總結(jié)

通過查看文檔、debug,把控制臺的錯誤一個個fix了,版本最終部署上線。出現(xiàn)錯誤,不要怕,不過上線上晚了,確實有點影響哈~ 。

到此這篇關(guān)于Rxjs監(jiān)聽精確使用版本上線的文章就介紹到這了,更多相關(guān)Rxjs監(jiān)聽版本上線內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序 下拉菜單簡單實例

    微信小程序 下拉菜單簡單實例

    這篇文章主要介紹了微信小程序 下拉菜單簡單實例的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 不可變數(shù)據(jù)方案之immer.js原理解析

    不可變數(shù)據(jù)方案之immer.js原理解析

    這篇文章主要為大家介紹了不可變數(shù)據(jù)方案之immer.js原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 微信小程序 教程之注冊頁面

    微信小程序 教程之注冊頁面

    這篇文章主要介紹了微信小程序 注冊頁面的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • JS中this的4種綁定規(guī)則詳解

    JS中this的4種綁定規(guī)則詳解

    如果你學(xué)過面向?qū)ο缶幊?,那你肯定知道干什么用的,如果你沒有學(xué)過,那么暫時可以不用看這篇文章,this既不指向函數(shù)自身,也不指函數(shù)的詞法作用域,具體怎么使用JS中的this,JS中的this綁定規(guī)則又是什么?
    2020-02-02
  • canvas?中如何實現(xiàn)物體的框選

    canvas?中如何實現(xiàn)物體的框選

    這篇文章主要為大家介紹了canvas中如何實現(xiàn)物體的框選的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 前端JavaScript徹底弄懂函數(shù)柯里化curry

    前端JavaScript徹底弄懂函數(shù)柯里化curry

    隨著主流JavaScript中函數(shù)式編程的迅速發(fā)展, 函數(shù)柯里化在許多應(yīng)用程序中已經(jīng)變得很普遍。 了解它們是什么,它們?nèi)绾喂ぷ饕约叭绾纬浞掷盟鼈兎浅V匾?。本篇文章小編九向大家詳細介紹JavaScript函數(shù)柯里化,需要的小伙伴可以參考下面文字內(nèi)容
    2021-09-09
  • 微信小程序 toast 詳解及實例代碼

    微信小程序 toast 詳解及實例代碼

    這篇文章主要介紹了微信小程序 toast 詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • 微信小程序  簡單實例(閱讀器)的實例開發(fā)

    微信小程序 簡單實例(閱讀器)的實例開發(fā)

    這篇文章主要介紹了微信小程序 簡單實例(閱讀器)的實例開發(fā)的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 微信小程序 表單Form實例詳解(附源碼)

    微信小程序 表單Form實例詳解(附源碼)

    這篇文章主要介紹了微信小程序 表單Form實例詳解的相關(guān)資料,這里對form 表單進行了詳細介紹,并附實例代碼,需要的朋友可以參考下
    2016-12-12
  • 微信小程序通過api接口將json數(shù)據(jù)展現(xiàn)到小程序示例

    微信小程序通過api接口將json數(shù)據(jù)展現(xiàn)到小程序示例

    這篇文章主要介紹了微信小程序通過api接口將json數(shù)據(jù)展現(xiàn)到小程序示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01

最新評論

旺苍县| 广饶县| 都兰县| 周至县| 鹤山市| 宁陵县| 若羌县| 江西省| 类乌齐县| 延安市| 武冈市| 边坝县| 安达市| 萨迦县| 宜川县| 桃园县| 昌江| 青岛市| 靖江市| 涟源市| 隆安县| 肥城市| 屏山县| 微山县| 延边| 郯城县| 墨玉县| 兴海县| 迁西县| 哈巴河县| 阿巴嘎旗| 灵山县| 和顺县| 西藏| 固阳县| 新沂市| 醴陵市| 大同县| 永嘉县| 巴青县| 会理县|