/*
async / await
+ ES7的语法
=> ES6提出的方案,但是ES6实现的不是很好
=> 在 ES7的时候优化过
+ 目的:
1. 回调地狱的终极解决办法
2. 把异步代码写的看起来像同步代码
语法:
1. async书写在函数的前面,是对这个函数的修饰关键字
2. await的使用,必须有 async 关键字,await才可以在函数内部使用
3. await等待的必须是一个 promise 对象,才会有等待的结果,不然没有意义
+ 当你满足了以上三个条件以后,你的 promise 对象本该在 then 里面接收的结果
=> 就可以直接定义变量接收
=> 你的 promise 里面的异步代码没有结束之前
=> 不会继续向下执行
*/
async function fn() {
pAjax({ url: './server/a.php', dataType: 'json' })
.then(res => {
console.log(res);
})
console.log('后续代码');
}
fn()
// 这段代码是 先打印 res的结果,然后再打印 '后续代码'
async function fn() {
const res = await pAjax({ url: './server/a.php', dataType: 'json' })
console.log(res);
console.log('后续代码');
}
fn()
// 这段代码先等待异步操作的结果完成后 再执行后续的代码
// 所以打印结果为: 先 res 后 '后续代码'
console.log('start');
fn()
console.log('end');
// 此时的fn函数是异步的,只是fn函数内部的逻辑处理成为了同步代码
// 所以会打印:
// start
// end
// res
// 后续代码
JavaScript中的async和await
最新推荐文章于 2024-04-19 20:26:02 发布