摘要:本文主要介绍了web前端开发Javascript练手-Javascript实现一个简单的Promise,通过具体的内容向大家展现,希望对大家前端开发Javascript的学习有所帮助。
本文主要介绍了web前端开发Javascript练手-Javascript实现一个简单的Promise,通过具体的内容向大家展现,希望对大家前端开发Javascript的学习有所帮助。
一、什么是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。同时传递一个值(可以是错误)出去。
三、实列解析
执行代码浏览器输出“hello”
如果改为
执行代码,并无任何输出,这是为什么呢?
在相关回调函数下打印信息如下,可以看到浏览器输出
说明先执行了.then,this.status无值,再执行res就不会有任何输出。
所以我们还需要加入异步操作,用一个数组来存放回调函数,再执行派发。
执行代码后发现浏览器输出如下所示,说明异步的功能也实现了
如何实现Promise的链式调用功能呢?
首先要想到返回什么才能再then,怎么样才能把上一个函数then的返回值,放到下个then
我们需要每次then后返回还是一个Promise才行
我们需要把第一个函数的return的值,放到第二then中
我是小职,记得找我
✅ 解锁高薪工作
✅ 免费获取基础课程·答疑解惑·职业测评
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号