使用promise对象拆解回调地狱
大致流程如下
创建订单,
根据订单号创建VIP
根据VIP创建授权协议
Promise调用成功调用resolve函数
失败调用rejected函数
let order = orderid => new Promise((resolve, rejected) => { setTimeout(() => {r(orderid)}, 100) }) let addvip = orderid => new Promise((resolve, rejected) => { if (orderid !== '')//根据订单号判断返回模拟vipid setTimeout(() => r('vipid-456'), 200) }) let createauth = vipid => new Promise((resolve, rejected) => { if (vipid !== '')//根据vipid判断返回模拟授权码 setTimeout(() => r('auth-789'), 300) }) order('123')//模拟后端生成的订单号 .then(addvip)//订单生成成功后添加vip .then(createauth)//VIP成功后添加授权 .then((authid)=>console.log(authid)//最后显示授权码 ).catch(err=>console.log(err))//异常中间任意异步调用rejected都会直接运行catch,从而跳过其他步骤