怎么理解ES6 Promise对象

技术怎么理解ES6 Promise对象这篇文章主要讲解了“怎么理解ES6 Promise对象”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解ES6 Promise对

本文主要讲解“如何理解ES6承诺对象”,简单明了,易学易懂。请跟随边肖的思路,一起学习学习《如何理解ES6承诺对象》。

概述

这是异步编程的解决方案。

从语法上来说,Promise是一个对象,您可以从中获得异步操作的消息。

Promise 状态

状态的特点

Promise的异步操作有三种状态:待定、完成和拒绝。除了异步操作的结果,没有其他操作可以改变这种状态。

承诺对象只有状态从待定变为已履行和从待定变为已拒绝。只要实现了,拒绝了,状态就永远不会变,也就是解决了。

constp1=newPromise(函数(解析,拒绝){ 0

解析(“成功1”);

解析(“成功2”);

});

constp2=newPromise(函数(解析,拒绝){ 0

解析(“成功3”);

拒绝(“拒绝”);

});

p1.then(函数(值){ 0

console.log(值);//成功1

});

p2 .然后(函数(值){ 0

console.log(值);//成功3

});状态的缺点

不能取消承诺,一经创建立即执行,不能中途取消。

如果没有设置回调函数,Promise内部抛出的错误不会反映到外部。

当它处于挂起状态时,不可能知道它正在前进到哪个阶段(刚刚开始或即将完成)。

then 方法

然后方法接收两个函数作为参数,第一个参数是Promise执行成功时的回调,第二个参数是Promise执行不成功时的回调。将只调用这两个函数中的一个。

then 方法的特点

在JavaScript事件队列的当前操作完成之前,永远不会调用回调函数。

constp=newPromise(函数(解析,拒绝){ 0

决心(“成功”);

});

p.then(函数(值)}

console.log(值);

});

console . log(' first ');

//第一

//成功回调函数以。然后将随时被调用。

多次通话。然后,您可以添加多个回调函数,这些函数将按照插入的顺序独立运行。

constp=newPromise(函数(解析,拒绝){ 0

决心(1);

}).然后(函数(值){//第一个然后//1。

console.log(值);

return value * 2;

}).然后(函数(值){//第二个然后//2。

console.log(值);

}).然后(函数(值){//第三个然后//未定义。

console.log(值);

return Promise . resolve(' resolve ');

}).然后(函数(值){//第四个然后//解析。

console.log(值);

return Promise . reject(' reject ');

}).然后(函数(值){//第五个然后//reject:reject。

console.log('resolve: '值);

},函数(err){ 0

console . log(' reject : ' err);

});然后方法将为链调用返回一个处于已解析或已拒绝状态的Promise对象,Promise对象的值就是返回值。

then 方法注意点

Promise的简单链式编程最好保持扁平化,不要嵌套Promise。

始终返回或终止承诺链。

constp1=newPromise(函数(解析,拒绝){ 0

决心(1);

}).然后(函数(结果){ 0

p2(结果)。然后(new result=P3(new result));

}).然后(()=P4());当创建一个新的Promise但忘记返回它时,相应的链被断开,导致p4与p2和p3同时进行。

在大多数浏览器中,建议遵循。无法终止的承诺链中拒绝后的捕获(错误=console.log(错误))。

感谢您的阅读。以上是“如何理解ES6承诺对象”的内容。看完这篇文章,相信你对如何理解ES6 Promise Object有了更深的理解。具体用法需要实践验证。在这里,边肖将为大家推送更多相关知识点的文章。欢迎关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/65488.html

(0)

相关推荐

  • RedHat7.2的RemoveIPC设置主yes引起rac宕机该怎么办

    技术RedHat7.2的RemoveIPC设置主yes引起rac宕机该怎么办今天就跟大家聊聊有关RedHat7.2的RemoveIPC设置主yes引起rac宕机该怎么办,可能很多人都不太了解,为了让大家更加了解,小编给大

    攻略 2021年11月12日
  • docker-compose基本开发环境部署文件是怎样的

    技术docker-compose基本开发环境部署文件是怎样的docker-compose基本开发环境部署文件是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个

    攻略 2021年11月18日
  • AcWing 91 最短Hamilton路径

    技术AcWing 91 最短Hamilton路径 AcWing 91 最短Hamilton路径AcWing 91 最短Hamilton路径
    题目描述
    给定一张 n个点的带权无向图,
    点从 0~n?1 标

    礼包 2021年11月19日
  • MAVEN安装

    技术MAVEN安装 MAVEN安装一、maven下载
    下载地址:https://maven.apache.org/download.cgi
    二、配置镜像源(conf文件夹下的settings.xml文件

    礼包 2021年10月20日
  • web前端实现任意文字转粒子方法是什么

    技术web前端实现任意文字转粒子方法是什么本篇内容介绍了“web前端实现任意文字转粒子方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

    攻略 2021年11月5日
  • C++为什么不要拿着锁调用未知代码

    技术C++为什么不要拿着锁调用未知代码本篇内容主要讲解“C++为什么不要拿着锁调用未知代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++为什么不要拿着锁调用未知代码”吧

    攻略 2021年11月25日