我正在研究一个Node.js函数,它将对Amazon DynamoDB进行三次并发调用:put(存储一些信息),query(获取一些信息)和update(有条件地更新一些信息)。通话不依赖于对方。如何在预期错误时处理Node.js中的多个并行回调/承诺?
var docClient = new AWS.DynamoDB.DocumentClient();
docClient.put(params1, callback);
docClient.query(params2, callback);
docClient.update(params3, callback);
或承诺:
Amazon的SDK可以异步使用任何回调调用它们
var promise1 = docClient.put(params1).promise();
var promise2 = docClient.query(params2).promise();
var promise3 = docClient.update(params3).promise();
我要处理的查询调用的结果,但只有其他两个电话后已经解决。我不在乎它们发生的顺序,或者它们是否成功。
Promise.all()可以做到这一点,除非更新可能会抛出异常(Amazon将不符合条件的条件更新作为例外处理)。
你会如何解决这个问题?
感谢您接受的答案,但它是我的编辑之前。希望你更喜欢第二种方法,我认为它更好。 – Evert