js|js async和await的用法
建议:阅读本篇需要对Promise有一定的认识1.含义和用法
async 是一个修饰符,被它定义的函数会默认的返回一个 Promise 的 resolve的值。
因此对 async 函数可以直接进行 then 操作,返回的值即为 then() 方法的传入函数。
// demo
async function demo_1() {
console.log('a')
return 1
}
demo_1().then(res => {
console.log(res)//a, 1,
})
await同 async 一样,作为修饰符,但是它只能放在 async 内部使用。
它是获取 Promise 中返回的内容, 即这个 Promise 函数中 resolve 或者 reject 的值。
所以,async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。
如下例:
const myFun = function(){ return 'test'}async function demo_2() {
const a = await 1
const b = await new Promise((resolve, reject)=>{
setTimeout(function(){
resolve('wait')
}, 3000)
})
const c = await myFun()
console.log(a, b, c)
}demo_2()
/* 打印结果:
3秒后输出:1,"wait" ,"test",
*/
2.应用
【js|js async和await的用法】比如说,这样一个场景:等待三个数据结果都返回,计算它们的和
const myFun2 = function(val, time) {
return new Promise((resolve, reject) =>{
setTimeout(()=>{
resolve(val)
}, time)
})
}const demo_3 = async function() {
let a = await myFun2(3, 5000)
console.log(a)
let b = await myFun2(4, 10000)
console.log(b)
let c =await myFun2(5, 15000)
console.log(c)
let d = a + b +c
console.log(d)
}demo_3()
/* 打印结果:
5秒后输出:3
10秒后输出:4
15秒后输出:5 12
*/
推荐阅读
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- 20170612时间和注意力开销记录
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任
- 2020-04-07vue中Axios的封装和API接口的管理
- 烦恼和幸福