promises-aplus-tests 测试手写promise过程
// 安装promise测试插件
npm i promises-aplus-tests -D
// package.json文件配置下脚本执行部分
"scripts": {
"test": "promises-aplus-tests promiseKB.js(填入自己开发的promise的名字)"
},
class PromiseKB{
......
}
//在手写的promiseXXX.js添加以下代码,其中改成自己定义promise.js名字
PromiseKB.defer = PromiseKB.deferred = function(){
let dfd = {};
dfd.promise = new PromiseKB((resolve, reject)=>{
dfd.resolve = resolve;
dfd.reject = reject;
});
return dfd;
}
module.exports = PromiseKB
//最后测试文件
npm run test
//会打印出大量的信息,终端控制台会装不下->只显示一部分:解决--需要看哪一部分 Ctrl+C 打断程序执行,先解决有部分再不断后移
对测试不通过项,可以通过以下链接查询Promises/A+
中文版:https://juejin.cn/post/6844903767654023182英文版:https://promisesaplus.com/
--------------------------实测挑战-------------------------------
以下就是个人遇到以下测试未通过问题,及原因追查
-
fulfilled after a delay:包裹setTimeOut即可
if(this.status === 'pending'){ this.onfullfilled.push(()=>{ setTimeout(()=>{ var p = onFulfilledThen(this.value); p instanceof PromiseKB ? p.then(resolve,reject) : resolve(p) }) })
</li> <li> <p></p> </li> <li> <p></p> </li> </ul>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2019-12-19 Socket与系统调用深度分析