async函数无论返回什么东西(数组,空),都会返回一个Promise类型的对象,使用方法很简单,在函数前面加上async即可
promise是异步编程的新解决方案,语法上promise是一个构造函数,用来封装异步操作并可以获得其成功和失败的结果
async function fn() {
//若是返回一个Promise对象,就返回一个Promise对象。
return new Promise((resolve,reject)=>{
resolve('成功啦');
})
}
const result =fn();
//调回then方法
result.then(value=>{
console.log(value);//成功输出
},reason=>{
console.log(reason);//失败输出
})
async和await语法结合可以让异步代码像同步一样,用await配合async,取回正确的数据
1.await必须写在async函数中
2.await右侧的表达式一般为Promise对象
3.await返回值是promise成功的值**(是成功的值不是promise本体)**
4.await的promise失败了,就会抛出异常,需要trycatch捕获
const p=new Promise((resolve,reject)=>{
resolve('用户数据');
reject('失败啦');
})
async function main(){
try {
let result=await p;//这样就能读取到成功的值 用户数据 啦
console.log(result);
}catch(e){
console.log(e);//失败的话reject在这里打印
}
}
main();//输出 用户数据