1.promise作用:
promise:解决异步回调的问题

2.目的:
创建异步对象,当异步对象中的异步操作执行完成之后,再执行想要执行的东西。

  resolve表示将状态变成成功完成,reject表示将状态变成失败完成  当resolve方法执行完成之后,再执行then方法   let p = new Promise((resolve, reject) => {        setTimeout(() => {            console.log('执行完毕');            resolve();            // 表示完成        }, 3000)    })    p.then(() => {        console.log('promise异步操作完成了');    })

Promise在实际环境下的应用

“使用Promise我们可以用同步的方式写异步代码。其实Promise在实际的应用中往往起到代理的作用。例如,我们像我们发出请求调用服务器数据,由于网络延时原因,我们此时无法调用到数据,我们可以接着执行其它任务,等到将来某个时间节点服务器响应数据到达客户端,我们即可使用promise自带的一个回调函数来处理数据。”

async/await特点

1.async/await更加语义化,async 是“异步”的简写,async function 用于申明一个 2.function 是异步的; await,可以认为是async wait的简写, 用于等待一个异步方法执行完成;
3.async/await是一个用同步思维解决异步问题的方案(等结果出来之后,代码才会继续往下执行)
4.可以通过多层 async function 的同步写法代替传统的callback嵌套

async function语法

自动将常规函数转换成Promise,返回值也是一个Promise对象
只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数
异步函数内部可以使用await

多个await命令的异步操作,如果不存在依赖关系(后面的await不依赖前一个await返回的结果),用Promise.all()让它们同时触发

function test1 () {    return new Promise((resolve, reject) => {        setTimeout(() => {            resolve(1)        }, 1000)    })}function test2 () {    return new Promise((resolve, reject) => {        setTimeout(() => {            resolve(2)        }, 2000)    })}async function exc1 () {    console.log('exc1 start:',Date.now())    let res1 = await test1();    let res2 = await test2(); // 不依赖 res1 的值    console.log('exc1 end:', Date.now())}async function exc2 () {    console.log('exc2 start:',Date.now())    let [res1, res2] = await Promise.all([test1(), test2()])    console.log('exc2 end:', Date.now())}exc1();exc2();