<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        javascript下使用Promise封裝FileReader_javascript技巧

        來源:懂視網 責編:小采 時間:2020-11-27 20:50:58
        文檔

        javascript下使用Promise封裝FileReader_javascript技巧

        javascript下使用Promise封裝FileReader_javascript技巧:Promise 在處理異步的時候是個很好的選擇,可以減少嵌套層次,讓代碼更好讀,邏輯更清晰。ES6 將其加入規(guī)范,jQuery 3.0 也修改實現向規(guī)范靠攏(3.0 發(fā)布公告)。一些新增元素比如 .fetch() 原生就 thenable,不過大多數以往的 API 還要依賴回調,這
        推薦度:
        導讀javascript下使用Promise封裝FileReader_javascript技巧:Promise 在處理異步的時候是個很好的選擇,可以減少嵌套層次,讓代碼更好讀,邏輯更清晰。ES6 將其加入規(guī)范,jQuery 3.0 也修改實現向規(guī)范靠攏(3.0 發(fā)布公告)。一些新增元素比如 .fetch() 原生就 thenable,不過大多數以往的 API 還要依賴回調,這

        Promise 在處理異步的時候是個很好的選擇,可以減少嵌套層次,讓代碼更好讀,邏輯更清晰。ES6 將其加入規(guī)范,jQuery 3.0 也修改實現向規(guī)范靠攏(3.0 發(fā)布公告)。一些新增元素比如 .fetch() 原生就 “thenable”,不過大多數以往的 API 還要依賴回調,這個時候,我們只要將它們重新封裝,就能避開嵌套陷阱,享受 Promise 帶來的愉悅體驗。

        Promise 一般用法
        先來看下 Promise 的一般用法。

        Promise 的驅動模型并不復雜:任何操作,假定它只有兩個結果,成功或者失敗。那么只需要在合適的時間調用合適的程序,進入合適的后續(xù)步驟即可。.then() 顧名思義,就是下一步的意思,當前面的 Promise 有了結果——即調用 resolve 或者 reject——之后,就啟動對應的處理函數。

        Promise 實例創(chuàng)建后就會開始執(zhí)行,判定結果需要我們自己來,比如加載成功,或者滿足某個條件,等等。通過串聯 .then() 則可以完成一系列操作。每次調用 .then() 都會創(chuàng)建一個新的 Promise 實例,它會靜靜等待前面的實例狀態(tài)改變后再開始執(zhí)行。

        封裝 FileReader
        接下來開始封裝。思路很簡單,FileReader 除了提供各種 read 方法,還有幾個事件鉤子,其中 onerror 和 onload 很明顯可以作為判斷任務是否完成的依據。加載成功的話,就需要用到文件內容,所以將文件或文件內容傳遞到下一步也十分必要。

        最后完成的代碼如下:

        為了能真正派上用場,里面還有一些驗證文件類型的操作,不過跟本文主旨無關,略過不表。這段代碼的核心是創(chuàng)建一個 Promise 對象,等待 FileReader 讀取完成后調用 resolve 方法,或者出現問題時調用 reject 方法。

        使用剛才封裝好的函數
        接下來就可以在項目中使用了:

        .then() 支持兩個參數,第一個在 Promise 成功時啟動,第二個自然在失敗時啟動。用 .catch() 可以實現同樣地效果。Promise 的好處除了可讀性更佳以外,返回的 Promise 對象還可以任意傳遞,繼續(xù)進行鏈式調用,有很大想象空間。

        繼續(xù) .then()
        于是我們不妨串聯更多操作(本來想寫個斷點續(xù)傳的,回頭再說吧):

        全選復制放進筆記reader(file)

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        javascript下使用Promise封裝FileReader_javascript技巧

        javascript下使用Promise封裝FileReader_javascript技巧:Promise 在處理異步的時候是個很好的選擇,可以減少嵌套層次,讓代碼更好讀,邏輯更清晰。ES6 將其加入規(guī)范,jQuery 3.0 也修改實現向規(guī)范靠攏(3.0 發(fā)布公告)。一些新增元素比如 .fetch() 原生就 thenable,不過大多數以往的 API 還要依賴回調,這
        推薦度:
        標簽: 封裝 File javascript
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产免费无遮挡精品视频| 四虎影视在线影院在线观看免费视频| 性xxxxx免费视频播放| 亚洲黄色在线播放| 69国产精品视频免费| 亚洲精品在线不卡| 国产在线观看片a免费观看| 国产精品亚洲午夜一区二区三区| 性xxxx视频免费播放直播| 久久亚洲AV成人无码电影| 免费福利视频导航| 亚洲国产精品无码观看久久| 免费无码又爽又高潮视频| 国产成人亚洲综合在线| 在线亚洲97se亚洲综合在线 | 亚洲精品精华液一区二区| 免费无码又爽又刺激高潮的视频| 国产亚洲精品国产福利在线观看| 免费中文字幕不卡视频| 亚洲一级片免费看| 亚洲免费在线视频| 久久久久国产精品免费免费搜索| 国产亚洲精品AAAA片APP| 久久亚洲欧洲国产综合| 99国产精品视频免费观看| 亚洲视频一区二区三区四区| 免费一级黄色毛片| 在线免费中文字幕| 亚洲AV无码AV男人的天堂不卡| 亚洲?v无码国产在丝袜线观看| 国产猛男猛女超爽免费视频| 亚洲一级毛片免费看| 免费大片黄手机在线观看| 久久国产乱子伦精品免费一 | 亚洲精品国产福利片| 日韩免费一区二区三区| 国产一级一毛免费黄片| 亚洲午夜无码久久久久小说 | 18gay台湾男同亚洲男同| 天天摸天天操免费播放小视频| 久久久精品视频免费观看 |