gpt4 book ai didi

javascript - 如何在运行时在 ngResource 查询方法中设置超时

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:45:00 24 4
gpt4 key购买 nike

我有一个服务包含我所有的 API 端点连接器。这些端点连接器是 ngResource 对象。

在其中一些中,我覆盖了默认方法,例如 getquery,例如添加 responseTransformers。我希望能够设置 get 方法的 timeout 属性以在发送另一个请求之前停止一个请求,但我不想在我定义的服务中执行此操作所有 $resource:

this.collections = $resource(BackendConfig.apiUrl + 'collections/:uid/', {}, {
query: {
isArray: false,
method: 'GET',
timeout: myTimeoutPromise
},
});

但在运行时,就在我这样做之前

Resource.collections.query().then(function () {});

分析代码我得出结论,可以覆盖参数(第二个参数),但不能覆盖操作(第三个)。

我找到了可能(尚未实现)的解决方案:创建包含所有超时的新服务(假设为 Interrupter),将其与我需要的资源服务一起注入(inject),并在那里定义超时 promise 。有没有更方便的解决方案?

最佳答案

我不知道你的 $resources 做什么,但也许你可以将你的 promise 链接到提供者中。

$http.get( SOME_URL_HERE ).
then( function(response){
/*Resolve the first promise then chain your other requests*/
var promises = [ ];

promises.push ( $http.get( OTHER_URL ) );
promises.push ( $http.get( AGAIN_OTHER_URL ) );

return $q.all( promises );
})
.then ( function( responses){
/*This 'then' is of the chaining*/
reponses[0].something /*response of the first promise*/
reponses[1].something /*response of the second promise*/

})
.catch( function(error){
console.log( error );
});

关于javascript - 如何在运行时在 ngResource 查询方法中设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19814390/

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