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

相关推荐

  • 静默升级oracle的方法步骤是什么

    技术静默升级oracle的方法步骤是什么本篇内容主要讲解“静默升级oracle的方法步骤是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“静默升级oracle的方法步骤是什

    攻略 2021年11月4日
  • ?【Java深层系列】「技术盲区」让我们一起探索一下Netty(Java)底层的“零拷贝Zero-Copy”技术,上)

    技术?【Java深层系列】「技术盲区」让我们一起探索一下Netty(Java)底层的“零拷贝Zero-Copy”技术,上) ?【Java深层系列】「技术盲区」让我们一起探索一下Netty(Java)底层

    礼包 2021年12月24日
  • Axios中值得学习的核心知识点有哪些

    技术Axios中值得学习的核心知识点有哪些本篇内容介绍了“Axios中值得学习的核心知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

    攻略 2021年10月27日
  • Python项目实战之如何使用Django框架实现支付宝付款

    技术Python项目实战之如何使用Django框架实现支付宝付款这篇文章主要介绍“Python项目实战之如何使用Django框架实现支付宝付款”,在日常操作中,相信很多人在Python项目实战之如何使用Django框架实

    攻略 2021年10月19日
  • 如何查看oracle统计信息收集

    技术如何查看oracle统计信息收集本篇内容主要讲解“如何查看oracle统计信息收集”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何查看oracle统计信息收集”吧!查看

    攻略 2021年10月22日
  • Django组件-forms组件

    技术Django组件-forms组件 Django组件-forms组件Django组件-forms组件
    forms组件
    校验字段功能
    针对一个实例:注册用户讲解。
    模型:models.pyclass U

    礼包 2021年12月13日