gpt4 book ai didi

javascript - AngularJS 捕获空闲 promise

转载 作者:行者123 更新时间:2023-11-28 05:44:57 25 4
gpt4 key购买 nike

我目前正在尝试编写某种配置服务。该服务提供到另一台服务器的路径。将使用接收到的路径通过 ping 功能测试该路径的有效性。如果路径指向不存在的服务器,则不会有任何 promise ,并且整个应用程序会由于通常应在使用 .then(function (data){ }); 交付 promise 后发生的操作而卡住。在代码中。
那么有没有办法捕获这样一个缺失/待定的 promise 来防止卡住我的应用程序?

这是 AngularController 中的代码(由按钮触发)

applicationPingService.ping(path)
.then(function(successStatus){
if(successStatus == true){

//Some code here

}
else{
//Some other code here
}
});

这就是所谓的服务。
它采用类似 http://localhost:8080 的路径并尝试达到 blank.html页面检查服务器是否启动的状态代码。

app.service('applicationPingService', ['$http', '$q', 'globalValue', function($http, $q, globalValue) {

this.ping = function(path)
{
return $http({
method: "GET",
url: path + "/blank.html"
}).then(function(response)
{
if(response.status == 200)
{
return true;
}
else{
return false;
}

});
};
}]);

这只是一个例子,但我也想知道如何捕获空闲和丢失的 promise 的通用方法

提前致谢

最佳答案

我发现这个例子非常好 tutorial page for promises :

var jqDeferred = jQuery.ajax('http://localhost/blank.html');

jqDeferred.then(function(response, statusText, xhrObj) {
alert('success');
}, function(xhrObj, textStatus, err) {
alert('error');
});

有时服务器响应时间太长。然后你可以使用自己的超时并使用它:

Promise.race(array); Make a Promise that fulfills as soon as any item fulfills, or rejects as soon as any item rejects, whichever happens first.

关于javascript - AngularJS 捕获空闲 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38605892/

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