SOURCE

// const request = new Promise((resolve,reject)=>{
//     setTimeout(()=>{
//         resolve('收到服务端数据')
//     },Math.random()*3000)
// })
// function timeoutWrapper(p,timeout=2000){
//     const wait = new Promise((resolve,reject)=>{
//         setTimeout(()=>{
//             reject('请求超时')
//         },timeout)
//     })
//     return Promise.race([p,wait])
// }

// const req = timeoutWrapper(request)
// req.then(res=>console.log(res)).catch(e=>console.log(e))



const controller = new AbortController();
const signal = controller.signal;


fetch('https://slowmo.glitch.me/5000', { signal })
    .then(res=>res.json())
    .then(res=>console.log(res))
    .catch(err=>{
        if(err.name==='AbortError'){
            console.log('aborted',err.name)
        }else{
            console.log('error')
        }
    })

    setTimeout(() => {
    controller.abort();
}, 200);
console 命令行工具 X clear

                    
>
console