function promiseAll (arr) {
const result = []
let number = 0
return new Promise((resolve, reject) => {
arr.forEach((p, i) => {
Promise.resolve(p).then(res => {
result[i] = res
number++
if (number === arr.length) {
resolve(result)
}
}, error => {
reject(error)
})
})
})
}