Promise.resolve = function (value) {
return new Promise((resolve, reject) => {
if (value instanceof Promise) {
value.then(v => {
resolve(v)
}, r => {
reject(r)
})
} else {
resolve(value)
}
})
}
Promise.reject = function (value) {
return new Promise((resolve, reject) => {
reject(value)
})
}
Promise.all = function (promises) {
return new Promise((resolve, reject) => {
let count = 0
let arr = []
for (let i = 0
promises[i].then(v => {
count++
arr[i] = v
if (count === promises.length) {
resolve(arr)
}
}, r => {
reject(r)
})
}
})
}
Promise.race = function (promises) {
return new Promise((resolve,reject) => {
for(let i =0
promises[i].then(v => {
resolve(v)
}, r => {
reject(r)
})
}
})
}