怎么理解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)

相关推荐

  • vue中len函数的功能是什么(vue中babel作用)

    技术vue中babel指的是什么意思这篇文章将为大家详细讲解有关vue中babel指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在vue中,

    攻略 2021年12月22日
  • html中让图片靠右(html5怎么让文字在图片右边)

    技术html5如何实现图片往右这篇文章将为大家详细讲解有关html5如何实现图片往右,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在html中,图片往右的

    攻略 2021年12月17日
  • java中如何实现生成器和迭代器

    技术java中如何实现生成器和迭代器小编给大家分享一下java中如何实现生成器和迭代器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!print

    攻略 2021年11月23日
  • VB.NET局部静态变量怎么用

    技术VB.NET局部静态变量怎么用这篇文章主要为大家展示了“VB.NET局部静态变量怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET局部静态变量怎么用”这篇文

    攻略 2021年12月2日
  • Linux进程的内存管理举例分析

    技术Linux进程的内存管理举例分析这篇文章主要介绍“Linux进程的内存管理举例分析”,在日常操作中,相信很多人在Linux进程的内存管理举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家

    攻略 2021年11月23日
  • MySQL项目中常用的19条优化方法分别是什么

    技术MySQL项目中常用的19条优化方法分别是什么MySQL项目中常用的19条优化方法分别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获

    攻略 2021年11月29日