大前端----Promise的简单理解和async

首先,你得理解异步机制

Promise

       是一种异步编程机制

new Promise(function(resolve,reject){});//其中resolve和reject是javascript引擎封装好的方法

Promise有三种状态pending(进行中)、fulfilled(已成功)和rejected(已失败)

Promise对象的状态改变,只有两种可能:从 pending 变为 fulfilled 和从 pending 变为 rejected 。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果,这时就称为 resolved(已定型)。

运行下面的例子

let pm=new Promise((resolve,reject)=>{
    console.log('A');
    resolve('B');//将Promise的状态从pending(进行中)变为resolved(已定型),异步
    console.log('C');
})

//then是回调函数
pm.then(va=>{
    //Promise成功后
    console.log(va +'a');
},vb=>{
    //Promise失败后
    console.log(vb+'b');
});

//运行结果
A
C
Ba

在Promise里调用了resolve()函数,说明Promise的状态已到了成功状态,就可以异步执行pm.then(resoved => {},failed => {})里的resoved里的回调函数

Promise的 resolved(已定型) 还有多种表示形式,可以查看官方文档的promise章节

async

    可以理解为多个Promise执行的组合(并发),并返回一个Promise

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章