在承诺链中调用两种方法
Call for two method in promise chain
我有以下承诺,效果很好
troces.run(value, "../logs/env.txt")
.then(function (data) {
console.log(data);
return updadeUser(val, arg, args[1])
// Now here I need to add new method updateAddress(host,port,addr)
}).catch(function (err) {
console.error(err);
});
现在我需要在第一个.then
中添加其他方法调用更新用户和updateAddress
将一起工作
我的问题是
假设更新用户需要在更新后 10 毫秒启动 地址 建议如何这样做?
在错误处理方面,如果其中一个进程失败(发送错误消息)我需要退出(
process.exit(1);
)
使用 .all
:
troces.run(value, "../logs/env.txt")
.then(data => {
console.log(data);
return Promise.all([updadeUser(val, arg, args[1]),
updateAddress(host,port,addr)]);
}); // no need to add catches bluebird will log errors automatically
如果你真的需要10ms的延迟,你可以做到:
troces.run(value, "../logs/env.txt")
.then(data => {
console.log(data);
return Promise.all([updadeUser(val, arg, args[1]),
Promise.delay(10).then(x => updateAddress(host,port,addr))]);
}); // no need to add catches bluebird will log errors automatically
虽然我怀疑你真的只是想updateUser
发生之前updateAddress
这可以很容易地解决:
troces.run(value, "../logs/env.txt")
.then(data => {
console.log(data);
return updadeUser(val, arg, args[1]).then(_ => updateAddress(host,port,addr));
}); // no need to add catches bluebird will log errors automatically
如果您需要在承诺错误时退出,您可以执行以下操作:
process.on("unhandledRejection", () => process.exit(1));
尽管我强烈建议您创建有意义的错误消息,但仅非零进程退出代码很难调试。
相关文章:
- 这两种方法有什么不同
- 通过两种方法创建和更新 CSS
- 声明Javascript名称空间的两种方法之间的区别
- Dojo和RequireJS:Error:defineAlreadyDefined(…)在站点上同时使用这两种方法时
- 处理jQuery提交表单的两种方法
- 定义 ES6 React 组件的两种方法
- 在承诺链中调用两种方法
- 这两种方法在javascript类中定义方法的区别
- 确定对象是否在JavaScript中具有属性的两种方法
- 加载JS库的两种方法
- 在Javascript中定义对象方法的两种方法之间有什么区别
- 使用以下两种方法定义的方法之间的差异
- 在 Javascript 中创建“私有”属性的这两种方法之间的区别
- 主干视图渲染:fetch-first vs . render-first,两种方法都有缺点
- mongoDB——存储相同数据的两种方法的优缺点
- 在javascript中填充数组,这两种方法的区别是什么?
- 在持续集成后,在生产服务器中使用Webpack处理环境变量的两种方法
- AngularJS中定义控制器的两种方法
- 嵌套脚本标签,两种方法的比较
- Javascript -最好的两种方法来创建一个简单的时钟