亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

圖片加載完畢的問題

圖片加載完畢的問題

HUX布斯 2018-09-10 13:31:56
const preloadImage = function (path) {return new Promise(function (resolve, reject) {var image = new Image();image.onload  = resolve;image.onerror = reject;image.src = path;});};不理解為什么指定src會放在最后面,通常我們說圖片加載完畢不是說圖片已經顯示在頁面上了嗎。如果這樣在控制圖片的加載,path是無效路徑怎么辦。
查看完整描述

1 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

首先,圖片加載是個異步的過程,也就是發出 request 和收到 response 之間,需要一定的等待時間。而代碼是同步解析和執行的,所以為了得到這件異步事情的結果,這里會有相應的事件被觸發,也就是你代碼里的 load 和 error 事件,分別對應圖片加載成功與失敗。

然后這個 src 是指定目標資源的路徑,當執行 image.src = path; 后便會去請求這個資源,這時候上面提到的異步過程開始展開,于是等待這個過程的結果,也就是那兩個事件的觸發。

提問中說 src 為什么放在最后,其實放在兩個事件綁定的前面也可以(如下圖例子),因為異步總會花費時間,只是可能習慣于先綁定所有回調然后再觸發請求。

https://img1.sycdn.imooc.com//5bc6996d000102a006340117.jpg

然后題主說到 path 是無效路徑,那么圖片會加載失敗,于是觸發 error 事件,于是這個 promise 得到 reject 的狀態。

至于題主說的

通常我們說圖片加載完畢不是說圖片已經顯示在頁面上了嗎

可能和題主在哪里看到這段代碼的上下文有關,這里不太明白要問什么。


查看完整回答
反對 回復 2018-10-17
  • 1 回答
  • 0 關注
  • 601 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號