gpt4 book ai didi

javascript - AngularJS - 如何取消 promise ?

转载 作者:可可西里 更新时间:2023-11-01 02:44:39 24 4
gpt4 key购买 nike

<分区>

假设我有一个输入文本字段(更像 Google 搜索字段),当它发生变化时,将触发请求并显示一些结果。

例如,

让我们在输入中输入Dog:

typed D -> Calls ctrl.search('D') -> Makes a request -> Changes model when success
typed DO -> Calls ctrl.search('DO') -> Makes a request -> Changes model when success
typed DOG -> Calls ctrl.search('DOG') -> Makes a request -> Changes model when success.

现在,假设 DO 请求比 DOG 请求响应晚。即使我键入 DOG,我的模型也会以 DO 结果结束。

为此,如果我继续输入字符,我需要一种方法来取消或中止当前正在进行的请求。这样,我的模型只会根据最终请求进行更改。

我的输入如下所示:

<input type="text" class="form-control" data-ng-model="query" data-ng-change="ctrl.search(query)" placeholder="Search" />

这是我的searchCtrl.js:

var search;
var language;
var _this;

var SearchCtrl = function (searchService, lang)
{
search = searchService;
langauge = lang;
_this = this;
}

SearchCtrl.prototype.search = function (text)
{
var promise = search.language(language)
.facet('characters')
.highlight('quotes')
.query(text);

promise.then(function (response) {
if(!response) return;
_this.total = response.total;
_this.count = response.found;
_this.result = response.data;
});
}

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