[
'url1',
'url2',
'url3',
'url4',
'url5',
'url6',
],
someMethod: async function () {
const requests = this.urls.map((url: string) =>
instance.get(url).then((r) => r.data)
);
return await Promise.all(requests);
1. нет смысла писать return await, можно просто return. 2. Тип Promise.all это Promise<Result[]>, где Result - тип, в который резолвятся промисы, переданные аргументом в Promise.all
1. У него асинхронная функция, промис в промисе ж вернет
там просто каждый промис разный результат возвращает
В теории можно как tuple типизировать
Promise.resolve( Promise.resolve( Promise.resolve(1) ) ).then(console.log)
М?
В чём твой поинт? async function () { return await Promise.resolve(1); } Эквивалентно async function () { const result = await Promise.resolve(1); return result; } Возвращает промис, который резолвится в 1. async function () { return Promise.resolve(1); } Возвращает промис, который резолвится в 1. => варианты одинаковы и await после return излишен.
Что в консоль выпадет?
И где промис в промисе?
Разве? Я был уверен, что он промис в промис в последнем случае обернёт
Можешь зайти в любую нормальную IDE, там даже красным подчеркнет и скажет, что await is reduntant
Ну это и не async функции, возврат промиса из коллбэка в then предусмотрен
А чем асинк функции отличаются?
ws не подчеркивает
Если из async функции возвращается промис, то она возвращает его без изменений. В противном случае значение оборачивается в промис, который в него резолвится
Спасибо
¯\_(ツ)_/¯
Именно
Обсуждают сегодня