Promise学习

我想说Promise真的是繁重

首先你要知道Promise是用来解决回调深渊的

promise.then.catch

1、catch不仅要catch主体promise,而且还会catch异步then返回的promise,就是说在catch之前的内容如果报错都会被catch捕获到

2、如果promise没有reject,也没有catch,那么最终会触发unhandledRejection事件,process.on('unhandledRejection',(err,p)=>{})

promise.all()

可将一串promise对象一并执行,准从:

1、全部标记完,则promise.all标记为reslove,进入then

2、有一个标记为reject,promise标记为reject,进入then

3、promise.all参数分先后,依次执行

4、如果内部promise有自己的catch,则不会进入最终的catch

promise.race()

promise.all()为所有promise依次执行,而race本身意为赛跑,一群promise一起,谁先执行完,以谁的结果去执行then.

这里留有问题:是否存在promise参数先后?

eg.放入两个promise,一个读取图片,另外一个5s后报错,如果5s内能读完,进入正常回调,如果,5s到了还没执行,提示太慢了,不进行回调(只是帮助理解,并不推荐实际使用)

promise.resolve()、promise.reject()

立即生成对象,并以对应的状态进行then回调

promise.done()、promise.finally()

promise链可以无限扩展,最后一环的结果存在无法catch错误,规范.done()作为结尾,无需参数,只作用于输出参数,保证error thorw

finally()接受普通函数,无论promise结果如何,都会执行

promise.try()

不是很明白= =

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

推荐阅读更多精彩内容

  • Promiese 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果,语法上说,Pr...
    雨飞飞雨阅读 8,635评论 0 19
  • 你不知道JS:异步 第三章:Promises 接上篇3-1 错误处理(Error Handling) 在异步编程中...
    purple_force阅读 5,225评论 0 2
  • //本文内容起初摘抄于 阮一峰 作者的译文,用于记录和学习,建议观者移步于原文 概念: 所谓的Promise,...
    曾经过往阅读 4,993评论 0 7
  • 00、前言Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区...
    夜幕小草阅读 6,389评论 0 12
  • 当我们把一个函数已经完成后,如果想在函数中添加其他参数,怎么办呢?可能我们会在函数中再添加一个参数,那么如果后来需...
    LuxDark阅读 9,248评论 0 1