gpt4 book ai didi

javascript - 如何在 angularjs 中测试 .then 的 .notify

转载 作者:行者123 更新时间:2023-11-30 17:04:06 26 4
gpt4 key购买 nike

在这个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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com