promise和async/await的用法
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
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
}
promise和async/await的用法的更多相关文章
- 异步操作之 Promise 和 Async await 用法进阶
ES6 提供的 Promise 方法和 ES7 提供的 Async/Await 语法糖都可以更好解决多层回调问题, 详细用法可参考:https://www.cnblogs.com/cckui/p/99 ...
- promise 进阶 —— async / await 结合 bluebird
一.背景 1.Node.js 异步控制 在之前写的 callback vs async.js vs promise vs async / await 里,我介绍了 ES6 的 promise 和 ES ...
- Promise 和async/await 的使用理解
Promise 和async/await 的使用理解 1. new Promise时就会开始执行语句. new Promise(resolve => resolove('成功信息') ) ...
- 20分钟带你掌握JavaScript Promise和 Async/Await
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://www.freecodecamp.org/news/learn-promise-a ...
- Promise和async await详解
本文转载自Promise和async await详解 Promise 状态 pending: 初始状态, 非 fulfilled 或 rejected. fulfilled: 成功的操作. rejec ...
- node.js异步控制流程 回调,事件,promise和async/await
写这个问题是因为最近看到一些初学者用回调用的不亦乐乎,最后代码左调来又调去很不直观. 首先上结论:推荐使用async/await或者co/yield,其次是promise,再次是事件,回调不要使用. ...
- Promise, Generator, async/await的渐进理解
作为前端开发者的伙伴们,肯定对Promise,Generator,async/await非常熟悉不过了.Promise绝对是烂记于心,而async/await却让使大伙们感觉到爽(原来异步可以这么简单 ...
- Promise及Async/Await
一.为什么有Async/Await? 我们都知道已经有了Promise的解决方案了,为什么还要ES7提出新的Async/Await标准呢? 答案其实也显而易见:Promise虽然跳出了异步嵌套的怪 ...
- callback vs async.js vs promise vs async / await
需求: A.依次读取 A|B|C 三个文件,如果有失败,则立即终止. B.同时读取 A|B|C 三个文件,如果有失败,则立即终止. 一.callback 需求A: let read = functio ...
随机推荐
- pyqt5-QTDesigner--UI文件的使用方式
方式一:直接加载UI文件 from PyQt5.QtWidgets import QApplication, QWidget import sys class win(QWidget): def __ ...
- NOIP2016提高A组五校联考3总结
第一题,本来一开始就想到了数位dp,结果脑残地打了十几个转移方程,总是调试不出来,一气之下放弃了. 调第一题几乎调了整节比赛,第二第三都没它. 第二题连边找联通块. 第三题题解都打了三页,看都不想看. ...
- A1006
输入n行员工id以及到达和离开的时间,输出最早到达的员工的id和最晚离开的员工的id 注:字符串赋值函数strcpy(目标字符串,原字符串)字符串之间的赋值使用该函数,需要#include<st ...
- MTBF测试
本文转载自:https://blog.csdn.net/liuhaoemail/article/details/50531489 MTBF测试 目前,终端侧的可靠性测试基本上是采用称为”MTBF测试” ...
- JUnit——Annotation
Annotation是对属性,方法或者类做一个标记 比如@override表示复写了父类中的方法 [1]@Test: 测试方法(说明该方法为测试方法) a)(expected=XXException ...
- T3
T3构造图
- Java网络编程之Netty服务端ChannelOption.SO_BACKLOG配置
ChannelOption.SO_BACKLOG对应的是tcp/ip协议listen函数中的backlog参数,函数listen(int socketfd,int backlog)用来初始化服务端可连 ...
- git本地分支推送到远程分支
1.创建的创建和初始化 创建git仓库可以在远端创建一个仓库, 然后check到本地,在本地的文件里创建工程文件,然后提交 也可以将本地现有的工程和远端的空仓库关联 本地创建了一个工程 iOSDemo ...
- hadoop stop-dfs.sh 无法停止 namenode datanode
原因: HADOOP_PID_DIR 默认为 /tmp 目录,如果长期不访问/tmp/目录下的文件,文件会被自动清理,因此 stop-dfs.sh 无法根据 pid 停止 namenode, data ...
- lambda表达式匿名函数
匿名函数是一个“内联”语句或表达式,可在需要委托类型的任何地方使用.可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数. C# 中委托的发展 在 C# 1.0 中,您通 ...