Skip to content

📚 4.race

💻 代码实现

typescript
// 手写Promise.race
Promise._race = function (promises) {
    return new Promise((resolve, reject) => {
        promises.forEach((_promise) => {
            _promise
                .then((res) => {
                    resolve(res)
                })
                .catch(reject)
        })
    })
}

const promise1 = new Promise((resolve) =>
    setTimeout(() => {
        resolve(1)
    }, 300)
)

const promise2 = new Promise((reject) => {
    setTimeout(() => {
        reject(2)
    }, 400)
})

Promise._race([promise1, promise2])
    .then((res) => {
        console.log(res)
    })
    .catch(console.log)

Released under the MIT License.