这个就比较简单了,返回最先执行完的那一个promise就OK
思路:
:::success
race最后也是返回一个Promise对象,并且then之后,拿到的最先执行完毕的Promise结果
所有我们直接 返回一个Promise,在内部遍历PromiseArr,然后then就行
:::
代码
Promise._race = function (promiseArr) {return new Promise((resolve, reject) => {promiseArr.forEach(item => {// 如果不是promise,则需要转化为promisePromise.resolve(item).then(val => resolve(val),err => reject(err))})})}// testlet promise1 = new Promise((resolve, reject) => {setTimeout(() => resolve(111), 2000)})let promise2 = new Promise((resolve, reject) => {setTimeout(() => resolve(222), 1500)})let promise3 = new Promise((resolve, reject) => {setTimeout(() => resolve(333), 2500)})let promiseArr = [promise1, promise2, promise3]Promise._race(promiseArr).then((val) => {console.log(val)})

