@vladimir
Следующий пример демонстрирует, как вернуть promise массива в Node.js:
1 2 3 4 5 6 7 8 9 10 11 12 |
function getArrayPromise() { return new Promise((resolve, reject) => { const arr = ['a', 'b', 'c']; resolve(arr); }); } getArrayPromise().then((arr) => { console.log(arr); // ['a', 'b', 'c'] }).catch((err) => { console.error(err); }); |
Здесь функция getArrayPromise()
возвращает новый Promise, в котором массив ['a', 'b', 'c'] передается в качестве значения, когда Promise разрешается. В основной программе, мы вызываем getArrayPromise()
, используем метод .then()
для обработки разрешенного значения Promise и вывести массив в консоль. Если Promise отклоняется, мы используем метод .catch()
для вывода ошибки в консоль.
@vladimir
Если у вас есть асинхронная функция, которая возвращает массив и нужно превратить этот массив в promise и вернуть его, то можно сделать следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
function getAsyncArray() { return new Promise((resolve, reject) => { // Асинхронная операция, которая возвращает массив setTimeout(() => { const arr = ['a', 'b', 'c']; resolve(arr); }, 1000); }); } async function returnPromiseArray() { try { const arr = await getAsyncArray(); return arr; } catch (error) { console.error(error); throw new Error('Failed to get the array'); } } returnPromiseArray() .then((arr) => { console.log(arr); // ['a', 'b', 'c'] }) .catch((err) => { console.error(err); }); |
Здесь функция getAsyncArray
имитирует асинхронную операцию, которая возвращает массив через определенное время (в данном случае через 1 секунду). Функция returnPromiseArray
использует ключевое слово async
для асинхронного выполнения и await
для ожидания разрешения промиса, который возвращает getAsyncArray
. После успешного разрешения промиса, returnPromiseArray
возвращает массив. В основной программе используется метод .then()
для обработки возвращаемого массива и вывода его в консоль. Если возникает ошибка, используется метод .catch()
для обработки ошибки.