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