Promise.myResolve = function (value) {
if (value && typeof value === 'object' && (value instanceof Promise)) {
return value
}
return new Promise((resolve) => {
resolve(value)
})
}
Promise.myResolve(1).then(console.log)
const p2 = new Promise((resolve) => resolve(2))
Promise.myResolve(p2).then(console.log)
const p3 = new Promise((_, reject) => reject('err3'))
Promise.myResolve(p3).catch(console.error)
const p4 = {
then (resolve) {
setTimeout(() => resolve(4), 1000)
}
}
Promise.myResolve(p4).then(console.log)
Promise.myResolve().then(console.log)
Promise.reject(new Error('fail'))
.then(() => console.log('Resolved'),
(err) => console.log('Rejected', err))
Promise.myReject = function (value) {
return new Promise((_, reject) => {
reject(value)
})
}
Promise.myReject(new Error('fail'))
.then(() => console.log('Resolved'), (err) => console.log('Rejected', err))
console