Fork me on GitHub

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

Coding Poineer

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>
    
posted @ 2020-12-19 11:46  365/24/60  阅读(1403)  评论(0编辑  收藏  举报