如何取消一个promise

86 阅读1分钟
const cancelToken = {
  onCanceled: () => {}
}

const p =  new Promise(resolve => {
  setTimeout(() => {
    resolve('successed')
  }, 200);
})

const cancelP =  new Promise(resolve => {
  cancelToken.onCanceled = () => resolve('canceled')
})

Promise.race([p, cancelP]).then(res => {
  console.log(res)
})

setTimeout(() => {
  cancelToken.onCanceled()
}, 100);


// 打印结果:canceled