问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何手写一个Promise

发布网友 发布时间:2023-03-14 20:31

我来回答

1个回答

热心网友 时间:2023-11-15 06:04

参考文章: 《Promise,从入门到放弃》

catch 方法主要需要做到的就是异常穿透:

要实现 catch ,我们可以直接调用 iPromise.then 方法,但不传入 onResolve 方法。

同时,我们需要给 then 中的 onResolve 和 onRejected 赋初始值,顺便避免了传入 undefined 或其他非函数值而报错:

Promise.resolve 方法返回成功或者失败的 Promise 对象。如果传入的参数为非 Promise 类型的对象,则返回的结果为成功的 Promise 对象。如果传入的参数为 Promise 对象,则参数 Promise 返回的结果就是 Promise.resolve 返回的结果。

实现它,我们需要用到 静态方法 :

Promise.reject 方法返回一个失败的 Promise 对象, promiseResult 的值为 Promise.reject 的参数

实现:

Promise.all 方法接收的参数是由n个 Promise 对象的数组。返回新的 Promise 对象,只有所有的 Promise 对象都成功才成功,返回的对象的 promiseResult 为包含所有 Promise 对象的数组。只要有一个失败了就直接失败,返回的对象的 promiseResult 为失败的 Promise 对象的执行结果。

Promise.race方法接收的参数是由n个Promise对象的数组。返回新的 Promise 对象,第一个完成的Promise的结果状态就是最终结果的状态。

使用 setTimeout 将其变为异步任务。

......没啥好说的,从上到下敲一遍,不说运用自如,怎么也得是一脸懵*吧。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 实现Promise串行 手写Promise 所有方法实现 Promise的简易实现(2) Promise的实现 下面是一段jsp代码,简单的计算器功能,不明白的是为什么《c:set》中读取的值必须+0才能计算,不然报错 怎么制作一个JSP计算器 编写一JSP页面实现简单计算器的功能(只能用一个JSP页面来实现) 做这样的网站,后台用node.js适合吗 jquery使用(二):queue和dequeue 怎么查询具体某一天某城市的24小时空气污染物(PM2.5,PM10,SO2,NO2等)浓度 地区 南京 无锡 常州 宿迁 徐州 淮安 盐城 连云港 PM2.5日平均浓度(微克/立方米) 56 64 3 Sublime Text中如何对杂乱的代码进行格式化 python--setUp()和tearDown()应用 python 为什么本地比服务器运行要快 jqgrid设置某列靠右 addNodes 添加节点时遇到个问题,求教 敬请各位高手,前辈指点一下:下图中的那个小木屋用photoshop如何画,步骤详细点,我是初学者 哪位朋友有Photoshop例图?? html与样式表有哪些方法 函数式编程中cps(continuation-passing style )是什么意思? promise封装常用方法 js怎么实现鼠标移动出现div jQuery 表单数据存入 JSON js悬停可以计时吗 js如何控制鼠标放在div上3秒后才执行函数 js 加密解密 DW里面我做了个图片,当鼠标移动到图片上面时,会变成另一幅图片,这个效果怎么做? - 信息提示 网店装修要实现鼠标移到图片上悬停时,自动切换成另一张图片,移开又恢复之前的,这种网页特效怎么实现呢? unity3d 实现鼠标移到一张图片上时该图片切换成另一张图片,当鼠标挪开,图片变回原来的图片 MFC中,鼠标移动到一张图片上,然后显示另外一张图片 使用前端工具包bootstrap时同一页面的模态窗口是不是不能超过2个 怎样用VB编写一个倒计时程序 如何设置只要鼠标点击或移动到该导航菜单栏直接在该菜单下显示HTML网页 html点击左上角滑动出菜单(类似于安卓应用的滑动左侧出现菜单)怎样实现? HTML如何点击下拉菜单的不同选项,在网页不同的位置生成不同的图片 兼容所有浏览器的“加入收藏”怎么写呢? vb6.0制作浏览器怎样写另存为、打开、添加至收藏夹、整理收藏夹。详细代码是什么? 100分 求如何获取广告点击推广的代码,不是放在网页里面,而是放在自己的软件里面 如何删除网站代码中googleads的广告代码