我怎么能在异步语法的嵌套函数中抛出错误?

时间:2017-08-17 13:12:17

标签: javascript node.js ecmascript-6 ecmascript-2017

我需要做这样的事情:

<artifact>kg.apc:jmeter-plugins-json:pom:2.6</artifact>

我想使用const fn = () => new Promise((resolve, reject) => { const timeout = setTimeout(() => reject('time out!'), 3000); doSth().then((d) => { clearTimeout(timeout ); resolve(d); }).catch(reject); }); fn().catch(console.log);

来实现它们
async&await

但是,我发现&#39;超时!&#39;嵌套函数抛出的错误不能在const fn = async () => { const timeout = setTimeout(() => { throw new Error('time out!'); }, 3000); return await doSth(); }; try { fn(); } catch (e) { console.log(e); } 版本中捕获,如果一个分支失败,另一个分支将执行continue。在async中是否有任何方法可以在嵌套函数中抛出错误并阻止整个队列?

@Bergi,对不起,我认为这与你的问题完全不同。 async版本没有错,我是什么拼图,如何捕获嵌套异步函数抛出的错误,以及当其中一个抛出时如何中断所有其他嵌套函数。 在Promise版本中,很容易做到这一点,但如果没有Promise async|await可以做到这一点以及如何做到这一点?这是使用Promiser的唯一方法吗?

0 个答案:

没有答案