Я хочу остановить второй запрос, отправленный Iron-Ajax, еще до того, как первый отправленный запрос будет завершен. - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть 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 Ответ

0 голосов
/ 29 декабря 2018

Вы можете установить логическую переменную для возможности вызова this.$.request.generateRequest() что-то вроде:

DEMO

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 и т. д.

...