日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
async/await:更好的異步解決方案

在實際開發(fā)中總會遇到許多異步的問題,最常見的場景接口請求之后一定要等一段時間才能得到結果,如果遇到多個接口前后依賴,那么問題就變得復雜。大家都一直在嘗試使用更好的方案來解決這些問題。最開始只能利用回調函數(shù),后來開始有人使用Promise的思維來搞定。到ES6中開始支持原生的Promise,引入Generator函數(shù)。

邱縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

成都創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、成都網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務和平,十載網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575

為上城等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及上城網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站制作、成都網(wǎng)站設計、上城網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

成都創(chuàng)新互聯(lián)公司長期為1000多家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為正寧企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站建設,正寧網(wǎng)站改版等技術服務。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

公司主營業(yè)務:成都網(wǎng)站制作、成都網(wǎng)站設計、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出上饒免費做網(wǎng)站回饋大家。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比仁壽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式仁壽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋仁壽地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。

創(chuàng)新互聯(lián)公司長期為千余家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為武進企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站建設,武進網(wǎng)站改版等技術服務。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

網(wǎng)站制作、成都做網(wǎng)站服務團隊是一支充滿著熱情的團隊,執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標準與要求,同時竭誠為客戶提供服務是我們的理念。創(chuàng)新互聯(lián)把每個網(wǎng)站當做一個產(chǎn)品來開發(fā),精雕細琢,追求一名工匠心中的細致,我們更用心!

創(chuàng)新互聯(lián)是專業(yè)的市中網(wǎng)站建設公司,市中接單;提供成都做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行市中網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

在西烏珠穆沁等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供做網(wǎng)站、成都網(wǎng)站設計 網(wǎng)站設計制作定制網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,成都品牌網(wǎng)站建設,成都營銷網(wǎng)站建設,成都外貿網(wǎng)站建設公司,西烏珠穆沁網(wǎng)站建設費用合理。

創(chuàng)新互聯(lián)主要從事網(wǎng)站設計制作、做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務雙清,十載網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220

成都創(chuàng)新互聯(lián)公司咨詢熱線:18980820575,為您提供成都網(wǎng)站建設網(wǎng)頁設計及定制高端網(wǎng)站建設服務,成都創(chuàng)新互聯(lián)公司網(wǎng)頁制作領域十載,包括成都混凝土攪拌罐等多個行業(yè)擁有多年的網(wǎng)站推廣經(jīng)驗,選擇成都創(chuàng)新互聯(lián)公司,為企業(yè)錦上添花。

為渭城等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及渭城網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站建設、網(wǎng)站制作、渭城網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

站在用戶的角度思考問題,與客戶深入溝通,找到南沙網(wǎng)站設計與南沙網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設計、外貿營銷網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋南沙地區(qū)。

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供元江縣網(wǎng)站建設、元江縣做網(wǎng)站、元江縣網(wǎng)站設計、元江縣網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、元江縣企業(yè)網(wǎng)站模板建站服務,10余年元江縣做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

阿拉爾網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)公司。

銅鼓ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:國際域名空間、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設、通化縣網(wǎng)站維護、網(wǎng)站推廣。

創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為圍場企業(yè)提供專業(yè)的成都網(wǎng)站設計、成都做網(wǎng)站,圍場網(wǎng)站改版等技術服務。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比察哈爾右翼前網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式察哈爾右翼前網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋察哈爾右翼前地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站設計、成都網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務寶山,10年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220

成都創(chuàng)新互聯(lián)專注于當陽網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供當陽營銷型網(wǎng)站建設,當陽網(wǎng)站制作、當陽網(wǎng)頁設計、當陽網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務,打造當陽網(wǎng)絡公司原創(chuàng)品牌,更為您提供當陽網(wǎng)站排名全網(wǎng)營銷落地服務。

創(chuàng)新互聯(lián)公司從2013年開始,先為福安等服務建站,福安等地企業(yè),進行企業(yè)商務咨詢服務。為福安企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

創(chuàng)新互聯(lián)建站總部坐落于成都市區(qū),致力網(wǎng)站建設服務有網(wǎng)站設計、成都網(wǎng)站建設、網(wǎng)絡營銷策劃、網(wǎng)頁設計、網(wǎng)站維護、公眾號搭建、小程序制作、軟件開發(fā)等為企業(yè)提供一整套的信息化建設解決方案。創(chuàng)造真正意義上的網(wǎng)站建設,為互聯(lián)網(wǎng)品牌在互動行銷領域創(chuàng)造價值而不懈努力!

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設計制作、成都做網(wǎng)站與策劃設計,比如網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設10年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:比如等地區(qū)。比如做網(wǎng)站價格咨詢:028-86922220

愛輝ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

成都創(chuàng)新互聯(lián)公司主營隴川網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app軟件開發(fā)公司,隴川h5小程序定制開發(fā)搭建,隴川網(wǎng)站營銷推廣歡迎隴川等地區(qū)企業(yè)咨詢

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設計、做網(wǎng)站與策劃設計,桂林網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設10多年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:桂林等地區(qū)。桂林做網(wǎng)站價格咨詢:028-86922220

在梁河等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設計 網(wǎng)站設計制作按需網(wǎng)站建設,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,成都品牌網(wǎng)站建設,成都營銷網(wǎng)站建設,成都外貿網(wǎng)站建設,梁河網(wǎng)站建設費用合理。

臨夏ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設計、成都網(wǎng)站建設與策劃設計,埇橋區(qū)網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設10余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:埇橋區(qū)等地區(qū)。埇橋區(qū)做網(wǎng)站價格咨詢:13518219792

創(chuàng)新互聯(lián)作為成都網(wǎng)站建設公司,專注成都網(wǎng)站建設公司、網(wǎng)站設計,有關成都定制網(wǎng)頁設計方案、改版、費用等問題,行業(yè)涉及成都發(fā)電機回收等多個領域,已為上千家企業(yè)服務,得到了客戶的尊重與認可。

創(chuàng)新互聯(lián)公司:2013年開創(chuàng)至今為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設”服務,為數(shù)千家公司企業(yè)提供了專業(yè)的網(wǎng)站建設、成都網(wǎng)站建設、網(wǎng)頁設計和網(wǎng)站推廣服務, 按需制作網(wǎng)站由設計師親自精心設計,設計的效果完全按照客戶的要求,并適當?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構架,制作客戶同行業(yè)具有領先地位的。

專業(yè)領域包括網(wǎng)站設計制作、成都網(wǎng)站建設、成都商城網(wǎng)站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設計及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)公司的整合解決方案結合了幫做網(wǎng)絡品牌建設經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,欽北企業(yè)網(wǎng)站建設,欽北品牌網(wǎng)站建設,網(wǎng)站定制,欽北網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,欽北網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

創(chuàng)新互聯(lián)是專業(yè)的許昌網(wǎng)站建設公司,許昌接單;提供成都網(wǎng)站設計、成都網(wǎng)站制作,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行許昌網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

直到ES7,有了async/await。

這是一個用同步的思維來解決異步問題的方案。

我想很多人可能還不太分得清同步與異步的區(qū)別。如果你已經(jīng)徹底了解了事件循環(huán),那么想必對異步的概念應該非常了解。當我們發(fā)出了請求,并不會等待響應結果,而是會繼續(xù)執(zhí)行后面的代碼,響應結果的處理在之后的事件循環(huán)中解決。那么同步的意思,就是等結果出來之后,代碼才會繼續(xù)往下執(zhí)行。

我們可以用一個兩人問答的場景來比喻異步與同步。A向B問了一個問題之后,不等待B的回答,接著問下一個問題,這是異步。A向B問了一個問題之后,然后就笑呵呵的等著B回答,B回答了之后他才會接著問下一個問題。

那么我們先記住這個特點,async/await使用同步的思維,來解決異步的問題。在繼續(xù)講解它的語法與使用之前,我們先介紹一下如何在我們的開發(fā)環(huán)境中支持該語法。

如果你已經(jīng)知道如何配置,可跳過

一、如何在自己的開發(fā)環(huán)境中支持async/await語法

這里主要介紹兩種方式。

1. webpack中支持該語法

首先在當前項目中使用npm下載babel-loader。

 
 
 
  1. > npm install babel-loader --save-dev 

然后在配置文件webpack.confing.dev.js中配置,在module.exports.module.rules中添加如下配置元素即可。

 
 
 
  1.  
  2.     test: /\.(js|jsx)$/, 
  3.  
  4.     include: paths.appSrc, 
  5.  
  6.     loader: require.resolve('babel-loader'), 
  7.  
  8.     options: { 
  9.  
  10.       cacheDirectory: true, 
  11.  
  12.     }, 
  13.  
  14.   },  

如果你使用***版本的create-react-app或者vue-cli來構建你的代碼,那么它們應該已經(jīng)支持了該配置。

2. gulp中支持該語法

首先安裝gulp插件

 
 
 
  1. > npm install gulp-babel --save-dev 

然后編寫任務

 
 
 
  1. var gulp = require('gulp'); 
  2.  
  3. var babel = require('gulp-babel'); 
  4.  
  5.   
  6.  
  7. gulp.task('babel', function() { 
  8.  
  9.   return gulp.src('src/app.js') 
  10.  
  11.     .pipe(babel()) 
  12.  
  13.     .pipe(gulp.dest('dist')); 
  14.  
  15. });  

二、如何使用

async函數(shù)是Generator的一個語法糖。如果你不知道Generator是什么函數(shù)也沒有關系,我們只需要知道async函數(shù)實際上返回的是一個Promise對象即可。

 
 
 
  1. async function fn() { 
  2.  
  3.     return 30; 
  4.  
  5.  
  6.   
  7.  
  8. // 或者 
  9.  
  10. const fn = async () => { 
  11.  
  12.     return 30; 
  13.  
  14. }  

在聲明函數(shù)時,前面加上關鍵字async,這就是async的用法。當我們用console.log打印出上面聲明的函數(shù)fn,我們可以看到如下結果:

 
 
 
  1. console.log(fn()); 
  2.  
  3.   
  4.  
  5.     // result 
  6.  
  7.     Promise = { 
  8.  
  9.         __proto__: Promise, 
  10.  
  11.         [[PromiseStatus]]: "resolved", 
  12.  
  13.         [[PromiseValue]]: 30 
  14.  
  15.     }  

很顯然,fn的運行結果其實就是一個Promise對象。因此我們也可以使用then來處理后續(xù)邏輯。

 
 
 
  1. fn().then(res => { 
  2.  
  3.     console.log(res);  // 30 
  4.  
  5. })  

await的含義為等待。意思就是代碼需要等待await后面的函數(shù)運行完并且有了返回結果之后,才繼續(xù)執(zhí)行下面的代碼。這正是同步的效果。

但是我們需要注意的是,await關鍵字只能在async函數(shù)中使用。并且await后面的函數(shù)運行后必須返回一個Promise對象才能實現(xiàn)同步的效果。

當我們使用一個變量去接收await的返回值時,該返回值為Promise中resolve出來的值。

 
 
 
  1. // 定義一個返回Promise對象的函數(shù) 
  2.  
  3. function fn() { 
  4.  
  5.     return new Promise((resolve, reject) => { 
  6.  
  7.         setTimeout(() => { 
  8.  
  9.             resolve(30); 
  10.  
  11.         }, 1000); 
  12.  
  13.     }) 
  14.  
  15.  
  16.   
  17.  
  18. // 然后利用async/await來完成代碼 
  19.  
  20. const foo = async () => { 
  21.  
  22.     const t = await fn(); 
  23.  
  24.     console.log(t); 
  25.  
  26.     console.log('next code'); 
  27.  
  28.  
  29.   
  30.  
  31. foo(); 
  32.  
  33.   
  34.  
  35. // result: 
  36.  
  37. // 30 
  38.  
  39. // next code  

運行這個例子我們可以看出,當在async函數(shù)中,運行遇到await時,就會等待await后面的函數(shù)運行完畢,而不會直接執(zhí)行next code。

如果我們直接使用then方法的話,想要達到同樣的結果,就不得不把后續(xù)的邏輯寫在then方法中。

 
 
 
  1. const foo = () => { 
  2.  
  3.     return fn().then(t => { 
  4.  
  5.         console.log(t); 
  6.  
  7.         console.log('next code');     
  8.  
  9.     }) 
  10.  
  11.  
  12.   
  13.  
  14. foo();  

很顯然如果使用async/await的話,代碼結構會更加簡潔,邏輯也更加清晰。

異常處理

在Promise中,我們知道是通過catch的方式來捕獲異常。而當我們使用async時,則通過try/catch來捕獲異常。

 
 
 
  1. function fn() { 
  2.  
  3.     return new Promise((resolve, reject) => { 
  4.  
  5.         setTimeout(() => { 
  6.  
  7.             reject('some error.'); 
  8.  
  9.         }, 1000); 
  10.  
  11.     }) 
  12.  
  13.  
  14.   
  15.  
  16. const foo = async () => { 
  17.  
  18.     try { 
  19.  
  20.         await fn(); 
  21.  
  22.     } catch (e) { 
  23.  
  24.         console.log(e);  // some error 
  25.  
  26.     } 
  27.  
  28.  
  29.   
  30.  
  31. foo();  

如果有多個await函數(shù),那么只會返回***個捕獲到的異常。

 
 
 
  1. function fn1() { 
  2.  
  3.     return new Promise((resolve, reject) => { 
  4.  
  5.         setTimeout(() => { 
  6.  
  7.             reject('some error fn1.'); 
  8.  
  9.         }, 1000); 
  10.  
  11.     }) 
  12.  
  13.  
  14. function fn2() { 
  15.  
  16.     return new Promise((resolve, reject) => { 
  17.  
  18.         setTimeout(() => { 
  19.  
  20.             reject('some error fn2.'); 
  21.  
  22.         }, 1000); 
  23.  
  24.     }) 
  25.  
  26.  
  27.   
  28.  
  29. const foo = async () => { 
  30.  
  31.     try { 
  32.  
  33.         await fn1(); 
  34.  
  35.         await fn2(); 
  36.  
  37.     } catch (e) { 
  38.  
  39.         console.log(e);  // some error fn1. 
  40.  
  41.     } 
  42.  
  43.  
  44.   
  45.  
  46. foo();  

實踐

在實踐中我們遇到異步場景最多的就是接口請求,那么這里就以jquery中的$.get為例簡單展示一下如何配合async/await來解決這個場景。

 
 
 
  1. // 先定義接口請求的方法,由于jquery封裝的幾個請求方法都是返回Promise實例,因此可以直接使用await函數(shù)實現(xiàn)同步 
  2.  
  3. const getUserInfo = () => $.get('xxxx/api/xx'); 
  4.  
  5.   
  6.  
  7. const clickHandler = async () => { 
  8.  
  9.     try { 
  10.  
  11.         const resp = await getUserInfo(); 
  12.  
  13.         // resp為接口返回內容,接下來利用它來處理對應的邏輯 
  14.  
  15.         console.log(resp); 
  16.  
  17.   
  18.  
  19.         // do something 
  20.  
  21.     } catch (e) { 
  22.  
  23.         // 處理錯誤邏輯 
  24.  
  25.     } 
  26.  
  27. }  

為了保證邏輯的完整性,在實踐中try/catch必不可少??傊?,不處理錯誤邏輯的程序員不是好程序員。

與Promise相比,個人認為async/await有一定的簡潔性,但也并非就比Promise有絕對的優(yōu)勢,因此只能算是提供了另外一種稍好的方式,至于大家學習之后選擇哪種方式來解決自己的問題,這僅僅只是你的個人喜好問題。


網(wǎng)站標題:async/await:更好的異步解決方案
當前鏈接:http://m.5511xx.com/article/cdisige.html