Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Неточность в примере кода про промисы #5520

Open
msuny-c opened this issue Sep 28, 2024 · 4 comments
Open

Неточность в примере кода про промисы #5520

msuny-c opened this issue Sep 28, 2024 · 4 comments
Labels
js Контент по JavaScript ошибка Что-то критичное и мешает статья Расширенный материал

Comments

@msuny-c
Copy link
Contributor

msuny-c commented Sep 28, 2024

Ссылка на статью

https://doka.guide/js/promise/

Описание

Первый пример из статьи:

const promise = new Promise(function (resolve, reject) {
  const data = getData() // делаем асинхронную операцию: запрос в БД, API, etc.
  resolve(data) // переводим промис в состояние fulfilled. Результатом выполнения будет объект data
})

Здесь getData() - асинхронная функция, то есть возвращает Promise. И результатом выполнения будет не объект data, а результат промиса data. Поэтому во избежания путаницы предлагаю рассказать, что такое thenable, что будет если передать промис в resolve и изменить комментарий.

Пруфы

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#chained_promises

@msuny-c msuny-c added the ошибка Что-то критичное и мешает label Sep 28, 2024
@alexeyten
Copy link

Хм, если getData возвращает промиз, то зачем тут вообще городить огород.

Если всё же это асинхронная функция с колбеком, то так и надо написать и никакого const data не будет.

@msuny-c
Copy link
Contributor Author

msuny-c commented Sep 28, 2024

Хм, если getData возвращает промиз, то зачем тут вообще городить огород.

Если всё же это асинхронная функция с колбеком, то так и надо написать и никакого const data не будет.

@alexeyten Ну если не возвращает промис, то значит функция синхронная, и точно так же зачем городить огород если все это синхронно выполнится. А в качестве колбека ничего не передается. Возможно стоит в качестве примера все же функцию с колбеком привести

@alexeyten
Copy link

Ну смысл получить промис вместо синхронной ответа иногда есть. Но конечно проще Promise.resolve(getData()) написать.

@HellSquirrel
Copy link
Member

Я согласна что пример не очень точный. Автор тут хотел сказать "Как-то откуда-то получили данные". Этот пример не надо читать построчно.

Давайте переделаем на что-то поинтереснее. Варианты

  • первый клик мышки
  • данные из сокета
  • асинхронный запрос к БД с колбеком
  • добавьте свой вариант

@TatianaFokina TatianaFokina added js Контент по JavaScript статья Расширенный материал labels Nov 15, 2024
@TatianaFokina TatianaFokina added this to the Бэклог JS milestone Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js Контент по JavaScript ошибка Что-то критичное и мешает статья Расширенный материал
Projects
None yet
Development

No branches or pull requests

4 participants