我正在尝试获取Angular $q
服务及其相关对象和API 的句柄。当我查看控制台中的对象时,我看到:
var deferred = $q.defer()
...(and then from console inspection)...
$q: Object {defer: function, reject: function, when: function, all: function}
deferred: Object {resolve: function, reject: function, notify: function, promise: Object}
deferred.promise: Object {then: function, catch: function, finally: function}
它提出了一些问题:
$q.reject()
和之间有什么区别deferred.reject()
?什么时候使用每个?errorFn
in deferred.promise.then(successFn, errorFn)
和catchFn
in 之间有什么关系deferred.promise.catch(catchFn)
?catch()
总是会调用最外层的函数?如果其中一个嵌套的Promise也定义了catch函数怎么办?该捕获会阻止最外部的捕获执行吗?谢谢。
1)$q.reject()
是创建延迟然后立即拒绝的快捷方式;如果我无法处理错误,我经常在errorFn中使用它。
2)没什么,promise.catch(errorFn)
仅仅是服务的语法糖promise.then(null, errorFn)
,就像服务的成功和错误方法一样$http
,因此您可以编写如下代码:
promise.
then(function(result){
// handle success
return result;
}, function errorHandler1(error){
// handle error, exactly as if this was a separate catch in the chain.
}).catch(function errorHandler2(error){
// handle errors from errorHandler1
});
3)这正是$ q.reject派上用场的地方:
promise.
catch(function(error){
//Decide you can't handle the error
return $q.reject(error); //This forwards the error to the next error handler;
}).catch(function(error){
// Here you may handle the error or reject it again.
return 'An error occurred';
//Now other errorFn in the promise chain won't be called,
// but the successFn calls will.
}).catch(function(error){
// This will never be called because the previous catch handles all errors.
}).then(function(result){
//This will always be called with either the result of promise if it was successful, or
//'An error occured' if it wasn't
});
我正在尝试将Frappe Gantt库与Angular 5集成。这是官方文件https://frappe.io/gantt但是,我无法找到解决方法,因为typescript在组件中抛出了一个错误,它说“不能对类型缺少调用或构造签名的表达式使用‘new’。”,当我执行时: 现在是frappe。min.js已经导入到我的索引中。html,但我需要将新的甘特图对象分配给frappeGantt。有办法吗?
我试图添加一个类到一个元素,并删除它在一定时间后使用。 组成部分 模板 我可以看到该函数添加了类名“foobar”,但它将永远保留。我希望这个函数在1500ms后删除新添加的。 请帮我修一下。
我正在尝试将angular 5添加到cordova并创建一个项目。不,我不想使用离子。 我正在网上学习以下教程https://medium.com/@nacojohn/convert-your-angular-project-to-mobile-app-using-cordova-f0384a7711a6 当我运行时,我的应用程序会在浏览器中启动,当我执行时,我的应用程序已成功构建。 但是,当我在
我正在寻找一个解决方案,让我做一个角组件监听一个后端对象,得到一些其他服务的更新。 实际上,我有一个名为的组件,它显示客户签名的实际状态。对象中的此仅在后端通过REST公开到第三方服务的endpoint进行更新,该endpoint允许用户执行数字签名。 我的问题是,一旦第三方服务执行回调以更改状态,如何用实际状态实时更新UI。 为了便于您了解,我使用作为后端,使用作为前端。
本文向大家介绍react与angular、vue有什么区别?相关面试题,主要包含被问及react与angular、vue有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 Angular以前有接触过,我的感觉是,这不像React和Vue一样是构架+补充库(比如需要另外的全家桶来配合使用),它的功能非常完整,更像是一个框架,往里面填充就行,里面什么功能都有集成进去,缺点也明显,比较大,运行速度不
我试图在Angular的最后一个版本项目中使用http://hashids.org。 我找到了这个定义文件: 但当我尝试在我的角度项目中使用此代码时: 我得到了这个错误: 错误TS2351:无法将“new”与类型缺少调用或构造签名的表达式一起使用。 在我的本地,它工作正常,没有问题。但我试着编译一个生产设置,但它不起作用。