Повторное использование переменной ajax в Coffeescript

#javascript #ajax #coffeescript

#javascript #ajax #coffeescript

Вопрос:

У меня есть часть моего основного приложения, которая требует подтверждения пользователя при попытке вставить значение через мой WebAPI.

У меня есть этот код:

 @xhr = $.post '/api/entity/create', @data

@xhr.done (resp) =>
    if @xhr.status == 202
        # Some code for confirmation box
         @data.Force = true
         @xhr = $.post '/api/entity/create', @data # Problem is here

@xhr.fail (resp) =>
    # Code for error
 

Когда я принудительно вставляю, я не выполняю @xhr.done после моего вызова WebAPI

У вас есть какие-либо подсказки, почему это не работает?

Спасибо

Ответ №1:

Это потому, что это новая @xhr переменная, а обратные вызовы привязаны к старой. Вы можете переместить ее в другой метод и повторно использовать (я полагаю, у вас есть класс вокруг кода):

 post: ->

  @xhr = $.post '/api/entity/create', @data

  @xhr.done (resp) =>
    if @xhr.status == 202
      # Some code for confirmation box
      @data.Force = true
      @post()

  @xhr.fail (resp) =>
    # Code for error