初步认识Promse

155 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Promse是什么?

  1. 抽象表达:Promise是JS中进行异步编程的新的解决方案(以前都用callback回调函数)
  2. 具体表达:
    (1)从语法上来说:Promise是一个构造函数
    (2)从功能上来说:Promise对象用来封装一个异步操作并可以获取其结果

为什么要用Promise?

一 .

指定回调函数的方式更加灵活
必须在启动异步任务前指定
Promise:启动异步任务 => 返回Promise对象 =>给Promise绑定回调函数,甚至可以在异步任务完结之后,在回调请求结果
二.
1.Promise支持链式调用,可以解决回调地狱问题
什么是回调地狱?
多个异步请求串联调用,并回调,就会出现回调地狱
回调函数嵌套调用的时候,不便于阅读,也不便于异常处理 Promise链式调用解决回调地狱代码如下:


//不是嵌套关系的调用,所以不会产生回调地狱的问题
fn1().then((result)=>{
return fn1(result)
})
.then((result2)=>{
return fn2(result2)
})
.then((result3)=>{
 console.log('success')
}).catch(()=>{//异常传投。任何一个出问题都会传到catch
console.log('error')
})

最完美的回调地狱解决方案其实是 async/await
纯粹的同步编码方式


async function request(){
try{
const  result = await fn1()
const  result2 = await fn2()
const  result3 = await fn3 ()
console.log('最终结果:'+result3)
}catch(error){
console.log('error')
}
}