测试代码
const Promise = require('./promise');
function go() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, 1000);
});
}
function r() {
return new Promise((resolve, reject) => {
setTimeout(() => {
reject();
}, 2000);
});
}
Promise.all([go(),r()]).then(v => {
console.log('resolve', v);
}).catch(v => {
console.log('reject', v);
});
原因可能是
/**
* 将现有对象转为成功的Promise对象
*/
Promise.resolve = function (value) {
let promise;
return (promise = new Promise((resolve, reject) => {
resolvePromise(promise, value, resolve, reject); // 参数promise永远是undefined
}));
};
改为
Promise.resolve = function (value) {
if (value instanceof Promise) {
return value;
}
return new Promise(resolve => resolve(value));
};
测试代码
原因可能是
改为