Как получить объект jqXHR, когда я вызываю JQuery ajax с помощью await? - PullRequest
0 голосов
/ 21 января 2019

Я делаю вызов jquery ajax и получаю асинхронный результат после того, как он завершится с await:

async () => {
  const result = await $.ajax (url);
  console.log (result);
}

Но в результате у меня есть только содержимое ответа, я хочу получить заголовки и статускод и так далее из объекта jqXHR.Как мне это получить?

Чтобы ответить на вопрос Ритулса, я хочу написать что-то вроде:

const result = await $.ajax(url);
const content = result[0];
const jqxhr = result[1];
console.log ('content:', content, 'status:', jqxhr.status);

РЕДАКТИРОВАТЬ:

Я попробовал следующий обходной путь и получаю странныйповедение (код машинописный):

const result = await ajax (gondorHeaderUrl);
console.log ('ajax result:', result);
console.log ('typeof ajax result:', typeof result);

function ajax (url: string, settings?: JQuery.AjaxSettings): Promise<JQuery.jqXHR> {
  return new Promise (((resolve, reject) => {
    $.ajax (url, settings)
      .then ((data, textStatus, jqXHR) => {
          console.log ( 'jqXHR:', jqXHR);
          console.log ( 'typeof jqXHR:', typeof jqXHR);
          resolve (jqXHR);
        },
        (jqXHR, textStatus, errorThrown) => reject (jqXHR)
      );
  }));
}

Консоль:

jqXHR: Object { readyState: 4...................
typeof jqXHR: object
ajax result: <!DOCTYPE html PUBLIC ...............
typeof ajax result: string

Почему результат отличается от jqxhr?Когда я обертываю его в объект, он работает:

resolve ({j:jqxhr});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...