【发布时间】:2018-02-18 13:43:45
【问题描述】:
我在$http.post 上添加了超时。原因是,当调用$http.post 时,它将与$htt.post(url.com) 通信,如果达到超时,则它应该停止对url 的请求。这是我的代码:
var canceler = $q.defer();
$http.post('www.example.com/api',{
//some json data
}, {timeout: canceler.promise}).then(function(response){
alert("Success");
});
// the timeout
$timeout(function(){
$rootScope.$apply(function(){
canceler.resolve();
alert("Process stopped!");
});
}, 40000);
如我们所见,我将超时设置为 40 秒。每次执行$http.post 请求并且满足 40 秒时,它都会提醒alert("Process stopped"),这很好!但我的问题是,当请求 $http.post 执行不到 40 秒时,它仍然会提醒不应触发的 alert("Process stopped!")。请帮我。如果请求少于 40 秒,则不应触发警报。
【问题讨论】:
-
您需要在尝试取消之前检查请求是否已完成。 BTW 调试使用
alert()不好,因为它会停止进程。更好地使用 console.log 或者更好地使用 npmdebug模块 -
你是什么意思? @Mikkel
-
你不清楚哪一部分?您的回答表明您已采纳建议
标签: javascript jquery angularjs ionic-framework