中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

ui作品集 網(wǎng)站怎么做搜素引擎優(yōu)化

ui作品集 網(wǎng)站怎么做,搜素引擎優(yōu)化,注冊網(wǎng)址的網(wǎng)站,攜程做網(wǎng)站的流程如果閱讀有疑問的話,歡迎評論或私信!! 本人會很熱心的闡述自己的想法!謝謝!!! 文章目錄 回調(diào)中的信任問題回調(diào)給我們帶來的煩惱?調(diào)用過早調(diào)用過晚調(diào)用的次數(shù)太少或太多調(diào)用回調(diào)時未能…

在這里插入圖片描述

如果閱讀有疑問的話,歡迎評論或私信!!
本人會很熱心的闡述自己的想法!謝謝!!!

文章目錄

  • 回調(diào)中的信任問題
  • 回調(diào)給我們帶來的煩惱?
    • 調(diào)用過早
    • 調(diào)用過晚
    • 調(diào)用的次數(shù)太少或太多
    • 調(diào)用回調(diào)時未能成功傳入?yún)?shù)
    • 吞掉了可能出現(xiàn)的錯誤或異常
  • Promise鏈?zhǔn)搅?/li>
  • 探索Promise異步模式抽象的變體——Promise.all篇

回調(diào)中的信任問題

什么是信任問題?先看下面的代碼!


//這里是現(xiàn)在要進行的代碼1ajax("...",function(){//這是是將來要執(zhí)行的代碼2})//這里是現(xiàn)在要進行的代碼3

我們從1執(zhí)行到3,中間的2交給了ajax進行回調(diào),但是我們不知道ajax會什么時候調(diào)用。代碼1之后?還是代碼3之后?或許代碼3的可能性更大一些,但是也不排除代碼1的小概率事件,畢竟不是我們所能控制的。

上面中的情況我們會叫做控制反轉(zhuǎn)(inversion of control),總而言之,意思就是把自己代碼的控制權(quán)交給了第三方。

回調(diào)給我們帶來的煩惱?

調(diào)用過早

我們可能打算在代碼3執(zhí)行完之后再讓代碼2執(zhí)行。在上面的代碼中,我們可以看到,代碼2可能在代碼3之前運行,這種情況就屬于調(diào)用過早。

我們通常會使用setTimeout(“…” , 0 )使這段代碼中的語句立即執(zhí)行,但是如今在ES6中,Promise幫我們已經(jīng)解決了這個問題,不再需要自行設(shè)置hack。

調(diào)用過晚

調(diào)用過晚意思是我們有時希望代碼2可以在代碼3之前執(zhí)行完畢,但是真實結(jié)果可能是代碼2在代碼3之后執(zhí)行的概率更大些。

這種情況我們稱之為調(diào)用過晚。

調(diào)用過早調(diào)用過晚使得我們的代碼具有二義性,在編寫程序時,我們無法準(zhǔn)確控制代碼執(zhí)行的時間,也無法將執(zhí)行時間提前。但是我們可以將代碼的執(zhí)行統(tǒng)一后退,將對代碼決議完之后的結(jié)果統(tǒng)一執(zhí)行!Promise就是這么做的!!

回調(diào)調(diào)用過晚,導(dǎo)致未調(diào)用

這種情況也屬于調(diào)用過晚,或許因為代碼中存在javascript錯誤,亦或者是其他錯誤導(dǎo)致。而在ES6中的Promise,沒有任何東西可以阻止Promise的決議。Promise總會調(diào)用其自身的完成回調(diào)或拒絕回調(diào)的其中一個方法。

如果Promise本身永遠不被決議呢?

Promise提供了一種成為競態(tài)的高級抽象機制:Promise.race()
該方法的參數(shù)為一個數(shù)組,數(shù)組中可以是Promise構(gòu)造器,亦可以是立即值。在該方法中,都會通過Promise.resolve()過濾。在數(shù)組中可以設(shè)置如下代碼設(shè)置超時,引起拒絕回調(diào)。

function timeoutPromise(delay){return new Promise(function(resolve,reject){setTimeout(function(){reject("超時了");},delay)})
})

調(diào)用的次數(shù)太少或太多

調(diào)用次數(shù)太少是指前面的未調(diào)用,在回調(diào)中,次數(shù)最少可以為1次。

調(diào)用次數(shù)過多,是指回調(diào)被頻繁引用,例如:設(shè)置的定時器過多…

在Promise中,每個決議只能被決議一次,無論后續(xù)再怎么調(diào)用,也只能得到相同的決議值。

調(diào)用回調(diào)時未能成功傳入?yún)?shù)

要強調(diào)一句,Promise只能有一個決議值!

如果Promise沒有顯示決議,那么這個決議值是undefined,例如下面這個代碼:

var  p = new Promise(function(resolve,reject){resolve();})p.then(function fulfilled(msg){console.log(msg);	//undefined},function rejected(err){console.error(err);})

這里resolve并沒有傳遞參數(shù)。

tip:如果多個參數(shù)調(diào)用resolve(…)或者reject(…),除了第一個參數(shù)被傳入Promise中,其他參數(shù)會被默默忽略。如果要傳入多個參數(shù),只能使用對象一個數(shù)組的形式傳入。

吞掉了可能出現(xiàn)的錯誤或異常

我們先來看一下下面的代碼!

var  p = new Promise(function(resolve,reject){foo.bar();resolve(1);})p.then(function fulfilled(msg){console.log(msg)},function rejected(err){console.error(err)})

在這個例子中,我們會看到控制臺打印出了下面這個錯誤:

ReferenceError: foo is not defined
at test.html:15:7
at new Promise ()
at test.html:14:14

由上所示:在出現(xiàn)javascript錯誤時,Promise會默認(rèn)調(diào)用了拒絕回調(diào)

我們再看一個相似的代碼:

var  p = new Promise(function(resolve,reject){resolve(1);})p.then(function fulfilled(msg){foo.bar();console.log(msg)},function rejected(err){console.error(err)})

在這個例子中,我們會看到控制臺打印出了下面這個錯誤:

Uncaught (in promise) ReferenceError: foo is not defined
at fulfilled (test.html:19:7)

Uncaught中文意思是未能捕獲,即該異常沒有被處理。通常我們可能會想,為什么Promise檢測到異常后不調(diào)用下面的rejected函數(shù)? 因為Promise有一個 重要原則:決議值一次決議,不會更改。我們不能因為爆出了異常,就使得該決議值成為了rejected。

解決該方法通常采用注冊處理函數(shù)的方式解決,即在尾部使用catch()。該方法相當(dāng)于以下代碼:

catch = new Promise(function(resolve,reject){reject();
})

Promise鏈?zhǔn)搅?/h2>

Promise中的鏈?zhǔn)搅?/p>

探索Promise異步模式抽象的變體——Promise.all篇

探索Promise異步模式抽象的變體

http://www.risenshineclean.com/news/52197.html

相關(guān)文章:

  • wordpress 前臺刪除評論安徽網(wǎng)絡(luò)推廣和優(yōu)化
  • 做網(wǎng)站的圖片是怎么做的騰訊企點是干嘛的
  • 單頁網(wǎng)站設(shè)計最近一個月的熱點事件
  • 廣州網(wǎng)站建設(shè)360元陜西seo優(yōu)化
  • 公司做網(wǎng)站費用會計分錄谷歌是如何運營的
  • 本地做網(wǎng)站貴seo搜索引擎優(yōu)化推廣
  • 網(wǎng)站開發(fā)的前端語言是哪些品牌營銷戰(zhàn)略
  • 找網(wǎng)站建設(shè)公司百度seo插件
  • 鄭州做網(wǎng)站推廣價格廣東網(wǎng)站se0優(yōu)化公司
  • 昆明做網(wǎng)站建設(shè)的公司全國疫情最新消息今天新增
  • 花都網(wǎng)站開發(fā)公司百度新聞發(fā)布
  • h5制作開發(fā)地點企業(yè)關(guān)鍵詞優(yōu)化價格
  • 網(wǎng)站索引量暴增什么叫軟文推廣
  • wordpress表單上傳多個文件濰坊關(guān)鍵詞優(yōu)化軟件
  • 做ui的圖從哪個網(wǎng)站找制作公司官網(wǎng)多少錢
  • 廣東東莞智通人才招聘網(wǎng)榆林市網(wǎng)站seo
  • 沈陽做網(wǎng)站的地方百度推廣怎么賺錢
  • 深圳網(wǎng)站建設(shè)公司的英文名是網(wǎng)站seo分析工具
  • 做資源網(wǎng)站怎么不封今日新聞內(nèi)容
  • 利用對象儲存做網(wǎng)站友情鏈接免費發(fā)布平臺
  • 網(wǎng)站展示型推廣北京網(wǎng)絡(luò)推廣有哪些公司
  • 給網(wǎng)站做壓力測試全國新冠疫苗接種率
  • 建站公司見客戶沒話說b2b商務(wù)平臺
  • 衡水建網(wǎng)站百度搜索風(fēng)云排行榜
  • 網(wǎng)站商城如何獲取流量成都網(wǎng)絡(luò)營銷推廣
  • 做行業(yè)分析的網(wǎng)站百度指數(shù)網(wǎng)址是什么
  • 論壇建站哪個比較好廣點通投放平臺
  • 谷歌瀏覽器怎么刪除2345網(wǎng)址導(dǎo)航百度產(chǎn)品優(yōu)化排名軟件
  • 免費瀏覽的網(wǎng)站資源平臺
  • 簡單做網(wǎng)站百度外鏈查詢工具