Javascript clearTimeout后未处理的PromiseExjectionWarning

Javascript clearTimeout后未处理的PromiseExjectionWarning,javascript,node.js,es6-promise,cleartimeout,Javascript,Node.js,Es6 Promise,Cleartimeout,如果我在计时器拒绝承诺后清除计时器,则无论我是否截获承诺的“catch”,我都会在标准输出中收到警告“UnhandledPromiseRejectionWarning” 选中:节点v10、节点v12、谷歌chrome 76 let定时器; 持续承诺=新承诺((解决、拒绝)=>{ 计时器=设置超时(()=>{ console.log(“!timeout”); 拒绝(“超时错误”); }); }, 100); 承诺。然后(结果=>{ console.log('SUCCESS:',result);

如果我在计时器拒绝承诺后清除计时器,则无论我是否截获承诺的“catch”,我都会在标准输出中收到警告“UnhandledPromiseRejectionWarning”

选中:节点v10、节点v12、谷歌chrome 76

let定时器;
持续承诺=新承诺((解决、拒绝)=>{
计时器=设置超时(()=>{
console.log(“!timeout”);
拒绝(“超时错误”);
});
}, 100);
承诺。然后(结果=>{
console.log('SUCCESS:',result);
}).catch(错误=>{
console.log(“!onerror”);
console.error('error:',error);
});
承诺。最后(()=>{
console.log(“!onfinaly”);
清除超时(计时器);
});
console.log(“!endcode”)如果调用被拒绝的承诺,则finally返回的承诺也会被拒绝:

window.addEventListener('unhandledrejection',=>console.error('unhandledrejection'));
承诺。拒绝()

.最后(=>ux)
您确定
promise
是计时器还是变量名为
timer
计时器,因为在您的代码中,您所说的
clearTimeout(promise)
您的
100
值位于错误的位置。(应该是
setTimeout
的第二个参数,请原谅!这是一个打印错误!当然,我指的是
cleartimout(timer)
@user3410504基于评论的更新/编辑最好反映在问题本身。这样其他读者就不必删除整个评论部分。您可以在问题下找到选项。非常感谢!现在一切都清楚了