gpt4 book ai didi

javascript - Angular : How can I stop my $http calls from blocking the UI?

转载 作者:可可西里 更新时间:2023-11-01 17:07:48 25 4
gpt4 key购买 nike

在我的 Controller 中,我有以下代码:

PartnersService.GetNonPartnerBanks().success(function (data) {
vm.nonPartnerBanksList = data;
}).error( function () {
vm.nonPartnerBanksList = [];
});

哪个调用此服务:

service.GetNonPartnerBanks = function() {
var nonPartnerBankUrl = config.baseUrl + 'public/nonPartnerBanks';
return $http.get(nonPartnerBankUrl);
};

这一切都有效,但如果服务器需要更长的时间来回复,应用程序的 UI 就会卡住。

$http 服务不使用 AJAX 并 promise 在进行调用时应该继续呈现 UI,我做错了什么?

模板中使用数据的部分:

<ol class="nya-bs-select nya-dashboard"
required

name="futurePartner"
id="futurePartner"
ng-model="npc.futurePartner"
data-size="5"
ng-change="npc.hideSucessMessage()"
title-tpl="<span>{{npc.partnerSelectTitle}}</span>"
deep-watch="true"
no-search-title-tpl="<span>{{'general.NoSearchResult' | translate}}</span>"
data-live-search="true">
<li nya-bs-option="bankItem in npc.futurePartnerList" data-value="bankItem.id">
<a>
{{bankItem.name}}
</a>
</li>
</ol>

跟进:

Vita 的回答让我走上了正确的道路,并不是 $http 阻塞了我的 UI,我在 ajax 调用上有一个动画,给人的印象是 Ui 卡住了

最佳答案

$http 调用是异步的,它返回 promise,你可以像往常一样使用 .then 和 .catch(成功和错误回调只是出于历史原因,它们已被弃用)

但即使是它们也不会阻塞您的 UI,它必须有所不同。

“卡住”是什么意思?

从哪里调用方法?你在路由对象解析属性中使用它吗?如果是 - 那么它的特点是 - 它等待所有 promise 都已完成。

肯定是其他地方的问题。你能提供更多信息吗?或者更好的一些 jsbin?

关于javascript - Angular : How can I stop my $http calls from blocking the UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33565045/

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