// 安装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>