async/await

async/await:

作用:解决回调地狱的;

promise解决的不够彻底,async/await:号称 回调地狱的终极解决方案

语法:

async和await是es7提供的两个关键字

async是用在函数定义之前的,用来修饰函数定义的 - 被修饰之后的函数,使用方式跟原来是一样的

async修饰的函数,在调用后,会得到一个promise对象,如果要得到去中返回的值,需要调用promise对象的then方法

await关键字必须使用在async修饰的函数中,如果不在async修饰的函数中,会报错

await所在作用域所属的函数,必须是async关键字修饰过的关键字

await的作用,是在后面等待一个值或promise对象

await等待的promise对象中的异步代码执行结束后,才会继续向下执行

await可以将promise中resolve的参数接收到以后,继续向下执行 - 异步代码变的跟同步一样了

被async修饰的函数,如果其中有await关键字,这个函数就成了异步函数了

如果async修饰的函数中没有await关键字, 跟普通函数一样,就是同步函数

async function fn(a, b){

return a + b

// 先return new Promise(function(resolve){

// resolve(a + b)

// })

}

var res = fn(1, 2) // 会得到promise对象

// console.log(res);

res.then(res => { // 原先函数中返回的结果,需要调用then方法得到

console.log(res);

})

用async和await处理回调地狱

​
async function fn(){

// 发送第一个请求

var res1 = await ajaxPromise({

url: 'http://localhost:8888/test/first',

dataType: 'text'

})

console.log(1, res1);

// 发送第2个请求

var res2 = await ajaxPromise({

url: 'http://localhost:8888/test/second'

})

console.log(2, res2);

// 发送第3个请求

var res3 = await ajaxPromise({

url: 'http://localhost:8888/test/third',

data: {

name: '张三',

age: 12

}

})

console.log(3, res3);

var a = await 3

console.log(a);

console.log(3);

}

​

解决延时器发送ajax请求

​
setTimeout(async a => {

var res = await ajaxPromise({

url: 'http://localhost:8888/test/second'

})

console.log(res);

}, 3000)

​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值