关于Promise的个人认知

Promise 

什么是Promise 

ES6 异步编程的一种解决方案,比传统的方案(回调函数和事件)更加的合理和强大

 好处 异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数

promise可以解决异步的问题,本身不能说promise是异步的

为什么会有promise

同步:主线程上排队执行的任务,只有前一个任务执行完毕,才能继续执行下一个任务;

异步:不进入主线程,而进入任务队列的任务,只有任务队列通知主线程,某个异步任务可以执行了,该任务才会进入主线程;

最常用的异步操作就是将回调函数作为异步回调的参数来使用,而promise是通过then来做的;

new promise 的时候就会被立即执行,因而为了实现用的时候调用所以将promise写在函数里面;

Promise的作用

1,主要是用来解决回调嵌套(执行完后再去执行某一些操作,这时候容易形成嵌套再嵌套的问题)的问题,也就是常见的"回调地狱";

 2,执行多并发请求获取数据;

Promise的使用

1,创建 Promise 实例,var p = new Promise();

2,实例创建以后可以用 .then 方法来指定 resolved状态 和 reject状态 的回调函数;

3,用常见的两种异常机制来捕获异常;

Promise的基本语法

语法总结:

1、promise 的参数是一个回调函数,回调函数中有两个 参数人别是resolve, reject resolve 用来返回异步请求成功的结果 reject 用来返回异步请求失败的结果

2、promise 的对象将异步请求结果保存后,需要使用第一个 .then来获取结果resolve函数返回的结果  .catch 获取reject 返回的结果。当然,我们也可以在 第一个.then中的第二个 回调函数获得 reject 返回的结果(上述问题可以查看代码~ 我写注释了)

3、promise 还可意识用 第二个.then是第一个.then的回调函数,这里可以继续处理其他逻辑(个人感觉有些 马后炮的意思,所以不经常使用,出现的概率也比较低)

Promise常用的方法:

实例方法

promise.then():获取异步任务的正常结果。

promise.catch():获取异步任务的异常结果。

promise.finaly():异步任务无论成功与否,都会执行。

对象方法

promise.all (): 并发处理多个异步任务,所有任务都执行成功,才能得到结果,并控制他们返回的【结果的顺序】

注意:promise.all中的 任何一个请求失败,将不会有返回结果。

promise.race (): 并发处理多个异步任务,只要有一个任务执行成功,就能得到结果

promise 结合 await async 封装接口api


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ES6数组的扩展 1,扩展运算符 ...将一个数组转为用逗号分隔的参数序列 该运算符主要用于函数调用 2,替代函数...
    小王子__阅读 242评论 0 0
  • 内存泄漏注意项 一.内存泄漏概念 1.什么是内存泄漏? 用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果...
    程序农猿阅读 311评论 0 1
  • 金三银四 2021年前端面试笔记 又到了找工作的黄金时间,3-4月份,跳槽是每个人的职业生涯中都要经历的过程,笔者...
    LonJin_up阅读 985评论 0 3
  • 单线程 JavaScript是一门单线程的语言,被广泛应用于浏览器和页面DOM元素交互,自从Node.js出现后,...
    JunChow520阅读 810评论 0 3
  • 0 HTML5相关 websocket WebSocket 使用ws或wss协议,Websocket是一个持久化的...
    可爱多小姐阅读 903评论 0 0