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
}

  

  

最新文章

  1. IOS-小项目(饿了么 网络部分 简单实现)
  2. thinkPHP访问不同表前缀
  3. apache虚拟主机访问原理
  4. NDK相关以及同步相关博客收集
  5. tomcat配置文件server.xml具体解释
  6. sqlserver常用全局变量
  7. 不定义JQuery插件,不要说会JQuery[转载]
  8. 基于visual Studio2013解决面试题之0407数组差
  9. android file.createnewfile ioexception
  10. linux之文件权限+用户权限
  11. C++进程间通信的十一种方法
  12. loadrunner / socket level data and wininet level data
  13. QT在Linux下的安装
  14. mysql数据类型介绍(含text,longtext,mediumtext说明)
  15. Python2 - MySQL适配器 MySQLdb
  16. Django -- settings 详解(转)
  17. PCL点云分割(1)
  18. 【动态规划】数字分组I
  19. mybatis-3 cache 源码赏析
  20. C/C++之标准库和标准模板库

热门文章

  1. pyqt5--QTDesigner--安装与配置
  2. 【leetcode】Path Sum IV
  3. 能给个安全点的fifo吗
  4. jquery gt选择器 语法
  5. php中文件断点上传怎么实现?
  6. FZU 2203 单纵大法好 (二分 &amp;&amp; 贪心)
  7. [CSP-S模拟测试]:旅行计划(分块+DP)
  8. java中定义注解
  9. #20175201 实现mypwd
  10. 【Spark机器学习速成宝典】基础篇03数据读取与保存(Python版)