美文网首页
Promise学习

Promise学习

作者: cnOWgo | 来源:发表于2017-09-27 22:35 被阅读0次

    我想说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()

    不是很明白= =

    相关文章

      网友评论

          本文标题:Promise学习

          本文链接:https://www.haomeiwen.com/subject/pbspextx.html