169 похожих чатов

Здраствуйте. Объясните, пожалуйста, почему сделали так, чтобы await можно было

использовать только в асинхронных функциях? именно спрашиваю зачем так сделали, что мешает использовать await в любом месте программы?

18 ответов

5 просмотров

Ты про почему нельзя писать await без ключевого слова async или await вообще без обертки? или и то, и то?

Evgeniy-Churikov Автор вопроса
Vladyslav Katrychᅠᅠᅠ ٴ ͜ٴ
Ты про почему нельзя писать await без ключевого сл...

почему нельзя писать await в неасинхронной функции (объявленной без async)

Evgeniy Churikov
почему нельзя писать await в неасинхронной функции...

Потому что это неправильно. Так ты говоришь, что в той функции есть асинхронный код и позволяешь другим отреагировать на это(поскольку async возвращает промисс). Возможно, есть ещё более низкоуровневые причины.

Полный ответ на этот вопрос довольно сложный. Если вкратце, то в текущей реализации JS это нужно для работы Event Loop

Evgeniy Churikov
почему нельзя писать await в неасинхронной функции...

Синхронная функция имеет право вернуть что угодно (даже промис) Асинхронная функция обязана вернуть промис

Evgeniy-Churikov Автор вопроса
Vladyslav Katrychᅠᅠᅠ ٴ ͜ٴ
Потому что это неправильно. Так ты говоришь, что...

то-есть основная суть в том, что я не могу использовать асинхронный код в синхронных функциях? но разве не могу?

Evgeniy-Churikov Автор вопроса
Nelkor
Полный ответ на этот вопрос довольно сложный. Если...

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

Evgeniy Churikov
то-есть основная суть в том, что я не могу использ...

Вся программа на JS синхронная. Но ты ведь можешь в ней использовать асинхронный код 😏

Evgeniy Churikov
почему нельзя писать await в неасинхронной функции...

потому что асинхронная функция может "вставать на паузу" пока ждет результат некой асинхронной операции. А обычная функция не предназначена для такого, и асинхронным операциям в ней не место

Evgeniy-Churikov Автор вопроса
Evgeniy-Churikov Автор вопроса
Jakhongir
потому что асинхронная функция может "вставать на ...

Хорошо, это я понял, тогда другой вопрос. Почему вебшторм говорит мне использовать await с любой асинхронной функцией внутри асинхронной функции?

Evgeniy-Churikov Автор вопроса
Jakhongir
можно больще скрин сделать?

чего конкретно, кода функции?

Evgeniy-Churikov Автор вопроса
Jakhongir
да, куда эту претензию делает вебшторм

Я кажется понял, он мне предлагает либо дописать await, либо then. Похоже ему просто не нравится, что я никак не обрабатываю, что будет непосредственно после функции

Evgeniy Churikov
то-есть основная суть в том, что я не могу использ...

Я слегка не правильно написал. Суть в том, что await всегда тормозит функцию. Теперь представь, что бы было без async ключевого слова. Есть два исхода, либо они убирают этот функционал с постоянным торможением, но тогда await не делает ровным счётом ничего без async. Либо оставляют, но делают этим ещё хуже. Так как человек вызывает с виду обычную синхронную функцию, не делает никаких ожиданий, а она ему по какой то причине тормозит всё. Не стоит сравнивать await и промисы. Промисы ты можешь спокойно обрабатывать через next. в то время как await без async теряет весь функционал.

Evgeniy-Churikov Автор вопроса
Vladyslav Katrychᅠᅠᅠ ٴ ͜ٴ
Я слегка не правильно написал. Суть в том, что aw...

спасибо большое, теперь я хотя бы примерно понимаю, зачем оно так сделано

Похожие вопросы

Обсуждают сегодня

@Aiwan что такое база образца?
Alexey
27
Не многие знают, а кто знает, тот уже успел забыть, что в далёком 2004 году эта игра произвела настоящий фурор, настолько революционной была технология, применяемая для её соз...
ICCID
4
Короче я тут узнал полный пиздец Что кучу постов которые я создавал через posted Спустя время не могу редактировать и менять Мол телега возвращае ошибку Это реально так ...
inc.
13
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Хотя у меня сейчас есть более сложная задача, вот её думаю: как объяснить челу переходного возраста противоположного полу, обучающегося в польском колледже (а-ля наш техникум)...
Вячеслав Кузьменко
15
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
30
что читать по делфи?вообще 0 в нем
fd dsds
9
const dirname = new URL((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new UR...
Kirill Shaplyko
4
how would you do any of that offline?
Thomas
7
верно что я могу удалить эти addq и subq т.к. со стеком никакого взаимодействия нет (исключая call)?
Michael
16
Карта сайта