在vue使用async/await
async/await是什么
async/await 是ES7提出的基于Promise的解决异步的最终方案。至于什么时候用这个,我的理解是比如页面初始化时要展示的内容有几个接口里面的数据合成的,有的内容需要别的接口里面的字段来展示,但是有的接口已经请求完毕但是有的接口还没请求完就会造成页面展示内容缺失或报错。简单来说就是把异步执行 转成同步代码。
async
async是一个加在函数前的修饰符,被async定义的函数会默认返回一个Promise对象resolve的值。因此对async函数可以直接then,返回值就是then方法传入的函数。
await
await 也是一个修饰符,只能放在async定义的函数内。可以理解为等待。
await 修饰的如果是Promise对象:可以获取Promise中返回的内容(resolve或reject的参数),且取到值后语句才会往下执行。
错误用法
time() {
setTimeout(() => {
console.log("我先执行的");
}, 3000);
},
setTime() {
console.log("我等三秒再执行");
},
async fun() {
await this.time();
await this.setTime();
},
我们看控制台打印的结果
先执行的是setTime这个函数,这样写async/await是不生效的。
await修饰的是Promise对象,可以获取Promise返回的内容,且取到里面的值后语句才会往下执行。
如果不是Promis对象,await对此表达式的类型没有影响。
其实在编辑器里就会有提示,await 不生效的话下面会有三个点,它不会报错。
正确的用法
time() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("我先执行的");
}, 3000);
});
},
setTime() {
return new Promise((resolve) => {
resolve("我等三秒再执行");
});
},
async fun() {
let a = await this.time();
let b = await this.setTime();
console.log(a);
console.log(b);
},
看打印结果
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhcigiaj
-
微信小程序没声音怎么办
PHP中文网 06-15 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
微信人名旁边有个图标有什么用
PHP中文网 03-11 -
微信提示登录环境异常是什么意思原因
PHP中文网 04-09 -
微信获取用户openid失败怎么办
PHP中文网 03-26 -
photoshop怎么把印章抠出并放在另一张图上
PHP中文网 06-15 -
Excel筛选和排序是灰色的怎么办
PHP中文网 06-22 -
EhViewer(E绅士)最新版_ehviewer白色版彩色版_Ehviewer显示网络错误怎么办?e站进不去了怎么办
Evanpatchouli 09-19 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24