//node并没有内置相关的xmlhttprequest,必须要额外安装相关包
let XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest
let fns = () => {
return new Promise(resolve => {
//promise.race()所以把请求包裹成promise的状态
let xhr = new XMLHttpRequest()
xhr.open('get', 'http://127.0.0.1:3000/delay')
xhr.send()
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
resolve(xhr.response)
}
}
}
})
}
let duration = (timer) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log("reject")
reject()
}, timer)
})
}
Promise.race([fns(), duration(5000)])