⼩程序-了解async、await、promise 1、async是什么
async⽤于声明异步的,常常⽤于处理回调函数。
async返回⼀个promise的对象,可以直接⽤.then,.catch来处理结果。
onLoad: function (options) {
// 声明该⽅法为异步⽅法,会返回⼀个Promise对象
async function test(){
return '云开发'
}
// var a = test();
// console.log(a)
console.log(test())
test().then((res)=>{
console.log("ook")
})
test().catch(err=>{
console.log('nono')
})
}
2、resolve成功之后的返回, reject是失败的返回。
3、await 它会阻⽌后⾯的代码运⾏,因为他后⾯的代码会等待上⼀个await完成(resolve)
await避免产⽣了回调地狱情况,并且提⾼了代码的可读性。
注意:await需要搭配async使⽤,否则会报错。
当没有使⽤await时,会直接返回Promise对象,并不会执⾏完resolve()内容。
function pro1() {
return new Promise((resolve, reject) => {
resolve(1)
})
}
function pro2() {
return new Promise((resolve, reject) => {
resolve(2)
await和async使用方法})
}
/
/ 不使⽤await
const a1 = pro1()
const a2 = pro2()
console.log(a1)
console.log(a2)
执⾏结果:
使⽤await时:
function pro1() {
return new Promise((resolve, reject) => {
//延时4秒
setTimeout(()=>{
resolve(1)
},4000)
})
}
function pro2() {
return new Promise((resolve, reject) => {
resolve(2)
})
}
async function test2(){
const a1 = await pro1()
const a2 = await pro2()
console.log(a1)
console.log(a2)
}
test2()
执⾏结果:因为await会阻⽌后⾯的代码运⾏,因为他会⾯的代码会等待上⼀个await完成,也就是会执⾏完resolve()再结束⽅法。
4、云函数中的async和await
// 云函数⼊⼝⽂件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数⼊⼝函数
exports.main = async (event, context) => {
var page = await new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve(event.a+event.b)
},2000)
})
return page
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论