gpt4 book ai didi

angularjs - 如何摧毁未兑现的 promise

转载 作者:行者123 更新时间:2023-12-02 19:29:56 24 4
gpt4 key购买 nike

查看代码片段

$scope.getSongs = function(keyword){
songServices.getSongList(keyword).then(
function(resp){
$scope.songList = resp.data.songList;
}
);
}

这里 getSongList 只是通过 HTTP 请求从服务器返回歌曲列表。

在我的 HTML 中:

<input auto-focus type="text" placeholder="Enter song ID/Keyword" ng-model="keyword" ng-change="getSongs()">

这里的问题在于 promise 的行为,有时如果某个 promise 需要更多时间(甚至以毫秒为单位)才能解决,那么它会显示错误数据。当您搜索“AKON”时,让我们说先行“A”的 promise 最后返回,然后它用错误数据刷新范围,有没有办法在向服务器发送另一个 promise 之前停止或丢弃尚未解决的 promise ,或者如何我能处理这种情况吗?

提前致谢。

最佳答案

通过在“timeout”配置选项中传递一个 promise 并解决该 promise ,可以取消 $http 调用。

来自the documentation :

timeout – {number|Promise} – timeout in milliseconds, or promise that should abort the request when resolved.

示例:

var canceler = $q.defer();
$http.get(someUrl, { timeout: canceler.promise });

// later: cancel the http request

canceler.resolve();

关于angularjs - 如何摧毁未兑现的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30805066/

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