Open pomo651 opened 4 years ago
function backEnd() { if(Math.random() > 0.5) { return { status: 200, user: { name: "Eason", email: "eason@gmail.com", phone: 1234 } } } else { return { status: 400, error: { message: "timeout" } } } } function mockApiCall() { * return new Promise((resolve, reject) => { setTimeout(() => { const response = backEnd(); if(response.status === 200) { resolve(response); } else if(response.status === 400) { reject(response); } }, 2000) }) } const mockApiCallPromise = mockApiCall(); mockApiCallPromise .then(res => console.log(res.user)) .catch(err => console.log(err.error.message));
要求:
先把上面code拿到JS Fiddle里面跑下,知道在做什么.
如果写的成功的话,那么 line with * 如果替换成: return new myPromise((resolve, reject) => { 也会得到同样的结果,则算是pass test cases.
return new myPromise((resolve, reject) => {
要求:
1.上面给出了一个测试用例,此时例子 line with * 是用的 JS 原生 new Promise()...
先把上面code拿到JS Fiddle里面跑下,知道在做什么.
2.现在要求写一个简单版本的 class myPromise { }
如果写的成功的话,那么 line with * 如果替换成:
return new myPromise((resolve, reject) => {
也会得到同样的结果,则算是pass test cases.