Значения магазина Promise возвращаются в массив - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть следующие методы.

  async getuserdevicesIDs() {
  return await new Promise( (resolve, reject) => {
    let timesDone = 0;
    // tslint:disable-next-line: no-var-keyword
    const viewDevicesLink = '/user/devices/view/'; // parameter: email
    const xhr = new XMLHttpRequest();
    // xhr.open('POST', this.AUTH_SERVER_ADDRESS + '/user/devices/view/', true);
    xhr.open('POST', this.AUTH_SERVER_ADDRESS  + viewDevicesLink, true);

    xhr.setRequestHeader('Content-type', 'application/JSON;charset=UTF-8');
    console.log(this.auth.getUserID());
    const email = this.auth.getUserID().toString();
    const us = new User();
    us.name = '';
    us.email = 'richard@gmail.com';
    us.password = '';


    xhr.send(JSON.stringify(us));

    xhr.addEventListener('readystatechange', processRequest, false);

    xhr.onreadystatechange = processRequest;

    function processRequest(e) {
        // tslint:disable-next-line: triple-equals
        if (xhr.readyState == 4 && xhr.status == 200) {
            // tslint:disable-next-line: triple-equals
            if (timesDone == 0) {
                // tslint:disable-next-line: prefer-const
                const response  = xhr.response;
                timesDone++;
                alert(response);
                resolve(response);

            }
        // tslint:disable-next-line: triple-equals
        } else if (xhr.readyState == 4) {
            alert('server error: ' + xhr.status + ', response is: ' + xhr.responseText);
            timesDone++;
            return null;
        }

    }

  });
}

Этот метод запрашивает у сервера определенные значения, и сервер будет возвращать массив значений, но я не знаю, как разрешить ответ как массив для последующего использования в этом методе.

     this.getuserdevicesIDs().then(response => {
    alert(this.IDs); })
    .catch(err => {});

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

...