今天在公司里看cesium源碼肢扯,看到一個(gè)函數(shù),居然是core里面的担锤,Error,雖然里面代碼不多蔚晨,但是我查了下,用的地方不少肛循,而且看了下源碼铭腕,感覺(jué)不難,今天就說(shuō)下
cesium里面屬于是把報(bào)錯(cuò)封裝了一層多糠,每次有報(bào)錯(cuò)的時(shí)候累舷,cesium都會(huì)有一個(gè)自己的顯示的報(bào)錯(cuò),看起來(lái)賊難看夹孔,但是怎么說(shuō)呢被盈,屬于是人家自己的報(bào)錯(cuò)界面,我就在想了搭伤,如果自己寫東西的話只怎,基本都應(yīng)該要有個(gè)這么個(gè)東西,比如加密的東西怜俐,不想讓別人知道尝盼,要么就是像element一樣,弄個(gè)組件佑菩,直接封裝error彈窗盾沫,以后想要輸出報(bào)錯(cuò)的時(shí)候,起碼體驗(yàn)會(huì)好點(diǎn)
現(xiàn)在就看下cesium里面報(bào)錯(cuò)怎么寫的殿漠,因?yàn)槲铱吹闹饕a是viewer.js 里面的赴精,所以就先把DeveloperError拉出來(lái)了:
這是github上的,看起來(lái)一大堆绞幌,但是實(shí)際代碼就那么幾行蕾哟,把注釋去掉之后就剩這么點(diǎn)了:
就這么30行代碼,算是封裝了一下莲蜘,里面一個(gè)構(gòu)造函數(shù)把報(bào)錯(cuò)封到里面谭确,如果有報(bào)錯(cuò),try-catch就會(huì)捕捉到票渠,然后放到構(gòu)造函數(shù)里面去逐哈,然后里面他單獨(dú)寫了一個(gè)toString方法,我剛剛試了下问顷,如果沒(méi)有這個(gè)方法昂秃,輸出的就會(huì)是[object object]?所以才有了上面toString方法禀梳,算是把object的toString重寫了下
地址:https://github.com/CesiumGS/cesium/blob/master/Source/Core/DeveloperError.js
????里面基本上可以認(rèn)為是把Error封裝了一下,然后呢肠骆,還加了一個(gè)方法算途,這個(gè)方法就讓我想到了,如果自己經(jīng)常使用的報(bào)錯(cuò)蚀腿,就可以這樣寫嘴瓤,然后到時(shí)候直接調(diào)用就可以了
而且,如果想要弄個(gè)自己的ui放進(jìn)去莉钙,也很方便纱注,想要自己搞點(diǎn)事情給老總看,可以console.err一下胆胰,這樣,老板發(fā)現(xiàn)不了刻获,也能發(fā)泄下自己的不滿??
? ? 說(shuō)到console蜀涨,我記得console有一大堆,剛剛找了下,:
????這都是mdn里的蝎毡,我只是拉出來(lái)厚柳,給大家看下,如果想要看具體的沐兵,可以看下官網(wǎng)里面别垮,地址:https://developer.mozilla.org/zh-CN/docs/Web/API/Console
????這里有所有的console里的方法,基本我們大家常用的就是console.log了扎谎,但是我之前看了下百度碳想,人家后臺(tái),里面有各種各樣的展示毁靶,其他大型網(wǎng)站也都有的胧奔,而且寫法都挺好看的,大家可以去看看预吆,弄起來(lái)跟做了一個(gè)簡(jiǎn)易網(wǎng)頁(yè)一樣龙填,所以大家想要研究下這個(gè),可以多多看看拐叉,當(dāng)然岩遗,也可以用到我們今天說(shuō)的這個(gè)error方法里面的
好了,今天就說(shuō)到這里了凤瘦,大家一起學(xué)習(xí)宿礁,一起來(lái)看源碼吧,前端和后端差不多蔬芥,源碼都是很珍貴的窘拯,看到自己項(xiàng)目里红且,就是自己的,就是經(jīng)驗(yàn)涤姊,就是錢暇番,所以大家加油吧