作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这个post函数中
var deferredRespond = $q.defer();
var statusNotice="Loading...";
deferredRespond.notify(statusNotice);
$http.post(processorUrl,{
params:request,
}).success(function(respondData){
//deferredRespond.resolve(respondData);
/*For Test Rejected Defer! -awh*/
deferredRespond.resolve($q.reject("Simulated Reject"));
//deferredRespond.resolve($q.notify("Simulated LOADING..."));
})
.error(function(){
deferredRespond.reject('Failed defer!');
});
我可以通过执行 .resolve($q.reject
来模拟 .reject 但我想知道为什么我不能通过执行 .resolve($q.notify
(它会返回未定义错误)?还有其他方法可以测试 .notify 吗?
谢谢
最佳答案
通知回调是 then
语法的一部分,可用于提供流程的状态。
如果你想通知你不应该使用 deferredRespond.resolve
和 $q
,你只需要直接调用延迟对象的通知方法:
deferredRespond.notify('Simulated LOADING...');
您将能够使用 then
订阅所有三种情况:
deferredRespond.promise.then(function(data) {
console.log('resolved', data);
},
function(data) {
console.log('rejected', data);
},
function(data) {
console.log('notified', data);
});
请注意,then
中的第一个回调函数对应于决议,第二个对应于拒绝,第三个对应于使用 deferredRespond.notify
发送的通知。
关于javascript - 如何在 angularjs 中测试 .then 的 .notify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28324609/
我是一名优秀的程序员,十分优秀!