JS问题整理与思考--介绍一下async/await(和Promise的区别/联系)

用法

  • 使用await,函数不许使用async标识
  • await后面跟的是一个Promise实例
  • 需要babel-polyfill
function loadImg(src) {
    var promise = new Promise(function (resolve, reject) {
        var img = document.createElement('img')
        img.onload = function () {
            resolve(img)
        }
        img.onerror = function () {
            reject('图片加载失败')
        }
        img.src = src
    })
    return promise
}
var src1 = 'http://mazhaoyang.cn/Public/Blog/src/images/logo2.png';
var src2 = 'http://mazhaoyang.cn/Public/Blog/src/images/backToTop.png';

var load = async function () {
    var result1 = await loadImg(src1)
    var result2 = await loadImg(src2)
}
load()

  • 使用了Promise,并没有和Promise冲突。可以理解为Promis基础上的一个扩展
  • 完全是同步的写法,没有回调函数
  • 但是:改变不了JS单线程/异步的本质

随机浏览