```
function loadImg(src) {
var promise = new Promise(function (resolve, reject) {
var img = document.createElement('img')
// throw new Error('.....')
img.onload = function () {
resolve(img)
}
img.onerror = function () {
reject('圖片加載失敗')
}
img.src = src
})
return promise
}
```
```
// var src = 'https://www.imooc.com/static/img/index/logo_new.png'
// var result = loadImg(src)
// result.then(function (img) {
// console.log(1, img.width)
// return img
// }).then(function (img) {
// console.log(2, img.height)
// }).catch(function (ex) {
// // 統一捕獲異常
// console.log(ex)
// })
```
- 空白目錄
- 第1章 課程介紹
- 1-2 架構
- 第2章 ES6 語法
- 2-1 開始
- 2-2 模塊化 - 語法
- 2-3 模塊化 - babel-new-part1
- 2-4 模塊化 - babel-new-part2
- 2-5 模塊化 - webpack
- 2-6 模塊化 - rollup介紹
- 2-7 模塊化 - rollup安裝
- 2-8 模塊化 - 總結
- 2-9 class - JS構造函數
- 2-10 class - 基本語法
- 2-11 class - 繼承
- 2-12 class - 總結
- 2-13 promise-callback-hell
- 2-14 promise - 語法
- 2-15 promise - 總結
- 2-16 常用功能演示
- 2-17 常用功能 - 代碼演示
- 2-18 常用功能 - 總結
- 第3章 原型
- 第4章 異步
- 4-1 開始
- 4-2 單線程 - 介紹-1
- 4-3 單線程 - 介紹-2
- 4-4 單線程 - 異步-1
- 4-5 單線程 - 異步-2
- 4-6 單線程 - 總結
- 4-7 event-loop - 演示
- 4-8 event-loop - 代碼演示
- 4-9 event-loop - 總結
- 4-10 jquery-deferred - 介紹
- 4-11 jquery-deferred -
- 4-12 jquery-deferred - 應用-1
- 4-13 jquery-deferred - 應用-2
- 4-14 jquery-deferred - 應用3
- 4-15 jquery-deferred - 應用4
- 4-16 jquery-deferred - 總結
- 4-17 promise - 語法回顧
- 4-18 promise - 捕獲異常-1
- 4-19 promise - 捕獲異常-2
- 4-20 promise - 串聯
- 4-21 promise-all-race
- 4-22 promise - 標準總結
- 4-23 promise - 總結
- 4-24 async-await-1
- 4-25 async-await-2
- 4-26 async-await - 總結
- 4-27 總結
- 第5章 虛擬 DOM
- 第6章 MVVM 和 vue
- 第7章 組件化和 React
- 第8章 hybrid
- 8-1 開始
- 8-2 hybrid是什么 - 開始
- 8-3 hybrid是什么 - webview
- 8-4 hybrid是什么 - file協議
- 8-5 hybrid是什么 - 具體實現和總結
- 8-6 hybrid更新流程
- 8-7 hybrid 和 h5 的比較
- 8-8 JS和客戶端通訊 - 開始
- 8-9 JS和客戶端通訊 - schema協議-1
- 8-10 JS和客戶端通訊 - schema協議-2
- 8-11 JS和客戶端通訊 - schema封裝-1
- 8-12 JS和客戶端通訊 - schema封裝-2
- 8-13 JS和客戶端通訊 - 總結
- 8-14 總結
- 第9章 課程總結