Я хочу остановить второй запрос, отправленный Iron-Ajax, еще до того, как первый отправленный запрос будет завершен.
У меня есть API, который занимает 4 минуты (около), чтобы завершить в моем приложении полимера. Когда я отправляю запрос ровно через 2 минуты, другой запрос отправляется даже после истечения времени ожидания, а для параметра debounce-duration установлено значение 10 минут. Я хочу остановить второй отправленный запрос или дождаться его завершения. Некоторые предлагали мне использовать fetch вместо iron-ajax. Мне нужно исправить само железо-аякс. Могу ли я иметь решение для этого.
код идет здесь
<iron-ajax id="request"
url={{request}}
verbose
handle-as="json"
method="{{method}}"
body="{{body}}"
params="{{requestParams}}"
on-error="onError"
loading="{{loading}}"
timeout=600000
content-type="application/json"
debounce-duration=600000
last-error="{{lastError}}"
last-response="{{lastResponse}}">
Я надеюсь, что это будет решено. заранее спасибо
1 ответ
Вы можете установить логическую переменную для возможности вызова this.$.request.generateRequest()
что-то вроде:
static get properties() {return {
_isRequest: {
type: Boolean,
value: true}}}
static get observers(){ return ['_checkLastResponse(lastResponse)'] }
__checkLastResponse(r) {
// we have received a response from iron-ajax so allow for next call
if (r) this._isRequest = true;}
// As you provided above code, you call ajax manually.
_ajax_call() {
if (this._isRequest) {
this.$.request.generateRequest();
this._isRequest = false; }
}
static get template() { return `
<paper-button disabled="[[!_isReruest]]" on-tap="ajax_call">AJAX CALL</paper-button>
.......
`;}
Таким образом, вы можете удалить ненужные свойства что-то вроде debounce-duration=600000
и т.п.