理解 Promise

promise 跟回调函数相比,可让咱们更方便地定义异步返回后的操做。
基本用法:javascript

//指定函数名 a、b
let p = new Promise(function(a, b){ 

    //指定promise何时改变状态,以及改变时传递的数据
    setTimeout(()=>a('I am resolve message'), 1000)//1
    setTimeout(()=>b('I am reject message'), 3000);//2
});

//指定改变时的回调函数,来处理数据
p.then(msg=>console.log(msg), msg=>console.log(msg))

咱们不用操心改变状态这个过程的实现,而只须要指定函数名ab——它们的函数体由浏览器定义,功能分别是将promise的状态变成“成功”和“失败”。java

promise状态改变时,浏览器就会调用回调函数。promise

注意 promise 的状态只能从“未完成”变成“成功”或“失败”,而不能从“成功”变成“失败”,因此上面代码中,当1生效后,2就不会生效了。另外传递的数据能够是任何类型,甚至能够是promise类型来实现链式调用。浏览器

理解了基本的流程,其余的API应该也很容易了。异步

相关文章
相关标签/搜索