web前端开发Javascript练手-Javascript实现一个简单的Promise
小职 2021-07-30 来源 :CSDN「迪迪归来仍少年」 阅读 424 评论 0

摘要:本文主要介绍了web前端开发Javascript练手-Javascript实现一个简单的Promise,通过具体的内容向大家展现,希望对大家前端开发Javascript的学习有所帮助。

本文主要介绍了web前端开发Javascript练手-Javascript实现一个简单的Promise,通过具体的内容向大家展现,希望对大家前端开发Javascript的学习有所帮助。

web前端开发Javascript练手-Javascript实现一个简单的Promise

一、什么是Promise?

    Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了`Promise`对象.


    所谓`Promise`,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。


二、Promise语法

const p1 = new Promise((resolve,reject) =>{

        setTimeout(() =>{

          resolve("fulfilled")


        },1000)


      })


 p1.then(() =>{},()=>{})


promise存在三种状态


      Pending(进行中),Fulfilled(已完成),Rejected(已完成)


      resolve 的作用就是将 Promise 对象的状态从 Pending 转换为 Fulfilled。同时传递一个值出去。


      reject 则是将 Promise 对象的状态从 Pending 转换为 Rejected。同时传递一个值(可以是错误)出去。


三、实列解析

web前端开发Javascript练手-Javascript实现一个简单的Promise


执行代码浏览器输出“hello”


 web前端开发Javascript练手-Javascript实现一个简单的Promise


如果改为

web前端开发Javascript练手-Javascript实现一个简单的Promise



执行代码,并无任何输出,这是为什么呢?


在相关回调函数下打印信息如下,可以看到浏览器输出


web前端开发Javascript练手-Javascript实现一个简单的Promise


 


说明先执行了.then,this.status无值,再执行res就不会有任何输出。


所以我们还需要加入异步操作,用一个数组来存放回调函数,再执行派发。

web前端开发Javascript练手-Javascript实现一个简单的Promise

 


执行代码后发现浏览器输出如下所示,说明异步的功能也实现了

web前端开发Javascript练手-Javascript实现一个简单的Promise



 如何实现Promise的链式调用功能呢?


    首先要想到返回什么才能再then,怎么样才能把上一个函数then的返回值,放到下个then


我们需要每次then后返回还是一个Promise才行

我们需要把第一个函数的return的值,放到第二then中

 web前端开发Javascript练手-Javascript实现一个简单的Promise

我是小职,记得找我

✅ 解锁高薪工作

✅ 免费获取基础课程·答疑解惑·职业测评

web前端开发Javascript练手-Javascript实现一个简单的Promise

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程