js异步函数-Promise、async、await

一、Promise

Promise就是一个容器,里面保存未来才会结束的事件(异步操作)

语法:
Promise对象是一个构造函数,new一个Promise实例

const promise=new Promise(function(resolve,reject){
    ....
    if(/* 异步操作成功 */){
    	 resolve(value);
    }else{
    	reject(error);
    }
})
.then(function(value){
	//success
}),

resolve:改变Promise的状态,将异步操作成功的结果作为参数传递出去
reject:在异步操作失败时调用,将报出的错误作为传递参数

二、async
async

1、含义
async函数就是将 Generator函数的星号(*)替换成async,将yield替换成await
2、基本用法
async函数的返回值是 Promise对象,可以使用then添加回调函数。当函数执行遇到await就会先返回,等到异步操作执行完毕,再接着执行函数体内后面的语句。

3、使用形式

//函数表达式
const foo=async function (){}
// 函数声明
async function foo(){}
//对象的方法
let obj={async foo(){}}
obj.foo().then(...)
//箭头函数
const foo = async ()=>{}
// class方法
class foo{
	async getNum(){
}
}

4、返回Promise对象

async函数内部return返回的值,会成为then方法回调函数的参数
async函数内部抛出错误,会导致返回的 Promise 对象变为reject状态。抛出的错误对象会被catch方法回调函数接收到

5、await命令

await命令后面是一个 Promise 对象,返回该对象的结果

任何一个await语句后面的 Promise对象变为reject状态,那么整个async函数都会中断执行

async function f() {
  await Promise.reject('出错了');
  await Promise.resolve('hello world'); // 不会执行
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值