Tag: node pg pool

Promise中的承诺有多重拒绝,究竟发生了什么?

Promise.all([iterable])是全部或全部,这意味着它承诺的答复决定了当迭代器中的每一个承诺解决或拒绝,只要一个承诺拒绝,拒绝的第一个承诺的理由( 文档 )。 但是,如果迭代拒绝的多重承诺会发生什么呢? 在VSCode中,我尝试了下面的例子,故意让foo()和bar()承诺失败。 当我在VSCodedebugging时,我得到一个错误* catch(err => Promise.reject('错误查询栏()'))*说exception发生 ,我不明白为什么。 我想这是因为当我打电话Promise.reject Promise.all已经收到了foo函数的拒绝也失败了,但是不清楚发生了什么。 如果我禁用debugging选项中的“未捕获的exception”断点,则exception不再显示。 究竟发生了什么? function foo() { return pool.query('insert_test into test (value) values (20)') .then(() => client.query('insert into test (value) values (21)')) .catch(err => Promise.reject('error query bar()')) } function bar() { return pool.query('insert_test into test (value) values (20)') .then(() => client.query('insert into test (value) values […]