Javascript 在承诺拒绝问题之后返回Get请求
我有一个承诺:Javascript 在承诺拒绝问题之后返回Get请求,javascript,promise,cancellation,Javascript,Promise,Cancellation,我有一个承诺: function ll_matching_process() { return new Promise(async (resolve, reject) => { cancel_button.onclick = function() { return reject(); } start_matching.onclick = async function() { mat
function ll_matching_process() {
return new Promise(async (resolve, reject) => {
cancel_button.onclick = function() {
return reject();
}
start_matching.onclick = async function() {
match_user = await $.getJSON('/match', { token: idToken, rejected });
console.log(match_user);
}
})
}
来自start\u matching
的get请求需要很长时间才能执行
单击start\u matching
后出现cancel\u按钮
。换句话说,用户单击开始匹配
,然后单击取消按钮
。当我调用该函数时,如果已经单击了cancel\u按钮
(这意味着已经单击了start\u matching
,并将请求发送到后端),即使承诺被拒绝并返回,$.getJSON(“/match”
请求仍然可以返回match\u user
,并且即使整个承诺被拒绝,我也会得到一个控制台。log
。我希望防止这种情况。例如,当承诺被拒绝时,即使get请求返回某些内容,它也不会进一步执行
我曾想过使用触发器,如果被拒绝,则将其转换为false,然后在承诺后检查触发器,如果是false,则返回,如果不是,则进一步执行。但是有更好的解决方案吗?此链接提供了一个结构化的详细答案来取消承诺。