promise和async/await的用法
2024-10-17 07:08:15
promise和async都是做异步处理的, 使异步转为同步
1.promise
它和Promise诞生的目的都是为了解决“回调地狱”,
promise使用方法:
<button @click="testBtn()">点击</button>
get(data) {
return new Promise((resolve, reject)=>{
if (data > 5) {
resolve(data);
} else {
reject("数据都是不大于5");
}
});
}, testF(num) {
console.log("=====", num)
}, // 调用
testBtn() {
this.get(6).then((num)=>{
this.testF(num);
});
this.get(3).then((num)=>{
this.testF(num);
});
}
2.async
async,会返回一个promise对象
如果async函数中是return一个值,这个值就是Promise对象中resolve的值;
如果async函数中是throw一个值,这个值就是Promise对象中reject的值。
async的使用方法:
async function imAsync(num) {
if (num > 0) {
return num // 这里相当于resolve(num)
} else {
throw num // 这里相当于reject(num)
}
} imAsync(1).then(function (v) {
console.log(v); // 1
}); // 注意这里是catch
imAsync(0).catch(function (v) {
console.log(v); // 0
})
3.await
await不会单独使用,他会和async一起使用, 如果直接使用await的话会不起作用,
await会暂停当前async函数的执行,等待后面的Promise的计算结果返回以后再继续执行当前的async函数
使用场景:
在发起请求获取数据的时候,如果个return返回数据, 这时就需要用到await
async test(){
const currentArr = []
await this.$axios
.get("/topsellerCategorys/", {
marketplaceID: item.value,
listname: "AnyDepartment"
})
.then(response => {
if (response && response.data) {
currentArr = response.data
);
}
})
.catch(error => {
this.loadingShow = false;
console.log(error);
});
if (this.fristCategory[0] && this.fristCategory[0].length) {
this.selectArr = [this.fristCategory[0][0].label]; //类目默认赋值
this.category = this.fristCategory[0][0].label; //选择的类目命默认赋值
}
return currentArr
}
最新文章
- IOS-小项目(饿了么 网络部分 简单实现)
- thinkPHP访问不同表前缀
- apache虚拟主机访问原理
- NDK相关以及同步相关博客收集
- tomcat配置文件server.xml具体解释
- sqlserver常用全局变量
- 不定义JQuery插件,不要说会JQuery[转载]
- 基于visual Studio2013解决面试题之0407数组差
- android file.createnewfile ioexception
- linux之文件权限+用户权限
- C++进程间通信的十一种方法
- loadrunner / socket level data and wininet level data
- QT在Linux下的安装
- mysql数据类型介绍(含text,longtext,mediumtext说明)
- Python2 - MySQL适配器 MySQLdb
- Django -- settings 详解(转)
- PCL点云分割(1)
- 【动态规划】数字分组I
- mybatis-3 cache 源码赏析
- C/C++之标准库和标准模板库