Javascript 承诺 .catch 仍然调用 final variable.then
Javascript promises .catch still calling final variable.then
使用node
,restify
和bluebird promises
以及睡眠不足的头脑:
let chain = Promise.try(() => {
return AsyncCall(auth_token).then(result => {
if (!result)
throw new Error('AUTH_TOKEN_ERROR');
} else {
return facebook_data;
}
});
}).catch((error) => {
res.code(401).error(error.message);
next();
});
chain.then((result) => {
// Gets called even though we throw the error.
});
我的问题是我真的很喜欢"结束"承诺链的chain.then()-方法(为了可读性),但即使.catch收到错误,它也会被调用。我意识到我可以将最终的 .then() 设置为第一个链块,但我想了解这一点。
如何保持相同的代码结构,但让 .catch() 事件结束承诺执行流程?
catch
假设您正在处理错误。如果你不是并希望在以后的catch
处理它,请像这样重新抛出它:
.catch((error) => {
res.code(401).error(error.message);
next();
throw error;
});
相关文章:
- 从jQuery调用存储在Variable中的函数
- 将Transform和Instance Variable转换为对象的JavaScript数组
- Php variable obj to js
- 将Computed PHP Variable传递到jQuery/Ajax表单
- jQuery .load with variable as url
- 获取Div Width,然后更新Scope Variable
- (typeof variable === “function”) 和 jQuery.isFunction() 有什么区别
- ColdFusion XML to Javascript variable
- 我们可以在初始化variable Angular JS时将变量值声明为未定义吗
- 使用 JavaScript 显示 Laravel's Variable
- javascript cookie value variable
- javascript中不带转义字符串的${variable}用法
- 将 JavaScript 元素 ID 传递给 PHP 或 Form Variable
- No puedo comparar una variable con un cadena de tipo String
- 如何在 template.find(input:hidden[id='SOME VARIABLE']) 声明中使用动态
- jquery ajax post to .aspx page load - how to read variable p
- jquery.final-countdown.js-需要帮助配置它
- document.querySelectorAll(variable class)
- chrome.storage.local.set using a variable key name
- Javascript 承诺 .catch 仍然调用 final variable.then