问题描述
实际问题
我要解决的问题是用户可能未在消息上提供足够的信息(不一致)。为了获得所有必要的数据,系统会提示用户对漫游器消息做出反应。 该漫游器消息分为三个阶段:“ InitialPrompt”,“ TimeoutWarning”和“ TimeoutSuccess(TicketFailure)”。
我希望解决方案是什么
使用我编写代码的方式,初始化后无法终止超时。我认为抛出错误将停止函数的执行。我想这不会发生,因为异步调用会排队,而不是逐行运行。
我可以提出的解决方案
const interPtr = {interrupted : false};
interruptSignal(interPtr);
if(interPtr.interrupted) return;
console.log("...");
...
实际代码
(async () => {
const sleep = async time => new Promise(resolve => setTimeout(resolve,time));
const interruptSignal = () => new Promise(async (res,rej) => {
console.log("interruptStarted")
await sleep(2000);
console.log("interruptRan");
throw "Interrupted"
});
const timeOutHandler = async () => {
interruptSignal();
console.log("TimeoutStarted")
await sleep(5000);
console.log("TimeoutWarning")
await sleep(5000);
console.log("TimeoutSuccess->TicketFailure")
};
try {
await timeOutHandler();
} catch (e) {
console.log(e);
}
})()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)