什么是Promise?
网上给了很多很多promise是什么,promise的基本概念。我看了很多,说白了,promise就是一个构造函数,既然是构造函数,便可以通过new方法来创造一个对象的实例。
即
const a = new Promise()
在每次得到实例对象上,都会有一个.then()方法来指定成功和失败分别代表的回调函数。
即
a.then((res,error)=>{})
【注意:成功的回调函数是必选,失败的回调函数是可选的】
当Promise如果在代码的执行途中发生了错误,就可以使用.catch()方法来捕获错误的信息。
即
a.then((res,err)=>{}).catch(err=>{console.log(err.message)})
以上只是一个简单意义上的异步操作(以new Promise为例),要创建一个具体的异步操作需要在Promise构造函数中以函数的形式将异步操作定义到函数的内部。
即(其中res是对应resolve,error对应reject,分别代表成功和失败的回调函数)
function fs(){
new Promise(function(resolve,reject){}
}
fs().then((res,error)=>{})
async和await
提到Promise异步操作肯定离不开async和await的使用,它们能简化Promise的异步操作,达到简化代码的作用。
以下为一个简单用async和await的例子
【注意:只要函数的内部出现了await,那么该函数必须要被async所修饰;在第一个await前面都是同步执行的任务,后面都是异步执行的任务】
console.log("1")
async function fs(){
console.log("2")
const s1=await 5
console.log(s1)
console.log("3")
}
fs()
console.log("4")
以下为函数执行结果↓
1
2
4
5
3