0

Полога, что создаю дубль, но вдруг что-то изменилось) и есть решение вернуть значение примаса PromiseValue?

async function praiceZeb() {

let client = new XMLHttpRequest(), csvarray = []; client.open('GET', 'xls-test.csv');

await new Promise(resolve => { client.onreadystatechange = () => { if (client.readyState == 4 && client.status == 200) { let rows = client.responseText.split('\n'); for (let i = 0; i < rows.length; i++) { csvarray.push(rows[i].split(';')); }

    resolve(csvarray[5][1]);
  }
};
client.send();

}); return csvarray[5][1]; };

console.log(praiceZeb());

1 Answers1

1

Необходимо получить значение из Promise? Чтобы это сделать, тебе необходимо вызвать свою синхронной функцию praiceZeb из другой синхронной функции.

async function praiceZeb() {
  const promiseValue = new Promise(resolve => {
    const arryaValue = [];
    for (let i = 0; i < 10; i++) {
      arryaValue.push(i);
    };
    resolve(arryaValue);
  });
  return promiseValue;
};

(async() => { const result = await praiceZeb(); console.log(result); })();

Так как твой console.log выполняется асинхронно.

MegaRoks
  • 852
  • Не слишком ли много async? –  Aug 09 '19 at 03:43
  • @Рустам-Гимранов Я не знаю чего автор будет делать в промисе, может там тоже необходимо синхронно выполнять действия. Я только показал как можно сделать в. – MegaRoks Aug 09 '19 at 03:45
  • @Рустам-Гимранов Я полагаю если у автора возникли проблемы пониманием async/await, то вероятно для общего развития можно было показать что промис тоже может быть синхронным. Так что я считаю не лишнее это было. – MegaRoks Aug 09 '19 at 03:50
  • @Рустам-Гимранов Я ответил на вопрос автора, не более. Для чего с синхронному коду что-то обещать? Например, для работы с асинхронными библиотеками. Дальнейшее осуждение выходит за рамки вопроса. Если что то не понятно, читайте первое предложение в этом ответе. – MegaRoks Aug 09 '19 at 03:57
  • 1
    если внутри async не используется await то и async не нужен. Сам промис не обязывает писать async – ThisMan Aug 09 '19 at 09:48
  • Так и не понял, можно передать или нет))? – spoon 100500 Aug 09 '19 at 14:53