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