Используется ли async-await только с обещаниями? - PullRequest
2 голосов
/ 24 октября 2019

Я использую javascript.

Мой вопрос исходит из этого сценария: у меня большой массив, через который я отображаю,

let myNewArray = myLargeArray.map(someFuntion)
console.log(myNewArray)

Возможно ли, что отображение может занять слишком много времении что undefined может быть зарегистрировано? Так стоит ли использовать async-await или он зарезервирован только для обещаний?

Ответы [ 2 ]

2 голосов
/ 24 октября 2019

Возможно ли, что отображение может занять слишком много времени

"слишком долго" субъективно. Время, которое требуется, не окажет никакого влияния на значение, которое вы получите в итоге.

что неопределенное может быть зарегистрировано?

map всегда возвращает массивтак что нет.

Массив может содержать неопределенные значения.

Так стоит ли использовать async-await или он зарезервирован только для обещаний?

Можно толькоПолезно дождаться обещания.

map вернет массив, поэтому вы не сможете его с пользой ждать.

Если someFunction вернет обещание, то map вернетмассив обещаний, который можно обернуть с помощью Promise.all, который возвращает обещание, которого можно ожидать, если вы хотите записать массив разрешенных значений вместо массива обещаний.

1 голос
/ 24 октября 2019

Карта является синхронной.
Он принимает функцию обратного вызова (someFuntion) и всегда создает новый массив.
Функция обратного вызова (someFuntion) не управляется событиями.
Применяется для каждого элемента в массиве по порядку.
Вы всегда получите массив, а не неопределенный. Но значения внутри возвращаемого массива будут зависеть от функции обратного вызова, которую вы предоставляете для отображения.
Если someFuntion ничего не вернет, вы получите массив неопределенных.
Если возвращает обещание, то массив обещаний, которые могут быть разрешены. Promise.all.

...