Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему код не работает правильно?

Лучший ответ:
Реализацию рестарта нужно добавить в тело игры, т.е. в функцию convert в вашем случае. Я бы сделал следующим образом:
player_v = input('Если да то нажмите (y) если нет нажмите (n)')
if player_v == y:
    convert()
else:
    print('Игра окончена')
Особо в код не вчитывался, но мимолетно заметил что вы ведете счет игры, если это действительно так, то стоит обнулять его сразу после проигрыша и перед рестартом, чтобы новая игра не началась с уже имеющимся счетом.

UPD: Плюс, в вашем случае условный игрок не успеет увидеть надпись о том, что игра закончится - так как программа сразу завершит работу. Последней строкой кода запишите пустой input. Это позволит вывести надпись о конце игры и не закрыться программе моментально.

UPD2: Если мне удалось помочь вам с вашей проблемой, будьте добры выберите мой ответ как решение! Спасибо и удачи!

Худший ответ:
оборачиваешь в цикл и в конце спрашиваешь:
i = input('Повторить (y/n)')
А дальше, если y то на новую итерацию, иначе выход из цикла
Вопрос: Важна ли сумма заказа в отзыве?

Лучший ответ:
Как бы не дебильно это не звучало, разные.
Во-первых, каждому заказчику важно увидеть разные стороны вашего таланта. Кому-то важен бюджет, с которыми вы работали, кто-то смотрит на популярность компаний и клиентов с которыми вы работали, кто-то на красоту вашего проекта, кто-то на технику исполнения.
А вообще,отзывы,  лично по мне, это черное дело, которое сгубило ни один десяток компаний и исполнителей.

Худший ответ:
там еще кто то с адекватных заказчиков остался?
я еще при выходках воропаева оттуда свалил
Вопрос: Как уместить SVG на экране при смене ориентации?

Лучший ответ:
Попробуй jsом менять ей Viewbox в атрибутах, не уверен что сработает, но можешь попробовать поэкспериментировать с этим вьюбоксом

Худший ответ:
Коллеги, спасибо за уделённое время, решение нашлось >>>ЗДЕСЬ<<<
Как работает посмотреть на >>>CODEPEN<<<
Вопрос: Что грозит за публикацию общих деталей о взломе программы?

Лучший ответ:
2-4 попадают под модификацию и в умелых руках грозят штрафом как минимум

Худший ответ:
Пишеш в начале статьи "Статья предоставлена в ознакомительных целях, информацию используете на свой страх и риск !" :)
Вопрос: Python. Перебор уникальных значений пропускает значения?

Лучший ответ:
Потому что не надо изменять итерируемую коллекцию.

Худший ответ:
Вы читаете список и параллельно с этим изменяете его. 
Вообще, странная конструкция у вас.
Вопрос: Расскажите про ваш опыт обучения C++ по книгам?

Лучший ответ:
Ни книга ни курсы ни статьи вас не учат.

Это вы учитесь (если учитесь), пользуясь разными инструментами - книгами, курсами, практической работой.

Вы уже взрослый сформировавшийся человек, со своими привычками, и у вашего мозга свои привычки.
Если вы за свою жизнь прочитали пару тысяч книг, наверное вам будет удобно учиться по книге. Если просмотрели пару тысяч фильмов, наверное будет проще смотреть видеокурсы.

Если ни то ни другое, тяжело вам будет, наверное. Мозг не любит ломать привычки, будет подталкивать вас на прокрастинацию такими способами, что и сами не заметите.

Худший ответ:
Открывайте профиль любого топа на ресурсе и смотрите, чему его научили книги.
Вопрос: Как пропустить итерацию если команда вызывает ошибку PHP?

Лучший ответ:
Объясняем для самых маленьких: В коде НЕ ДОЛЖНО быть ошибок синтаксиса.
Ошибки синтаксиса надо не "пропускать", а не допускать.

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

Поскольку ты пока еще вообще не понимаешь, как работать с БД из пхп, то никакой динамической сборки запроса. Только руками:
$sql = "INSERT INTO oc_product_description SET field1 = ?, field2=?, ...";
$stmt = $this->db->prepare($sql);
$stmt->execute(array_values($product['oc_product_description']));

Остальные ответы это ад.
А потом мы ходим и удивляемся - почему об пэхапэшников все ноги вытирают.
Вот из-за таких ответов и вытирают

Худший ответ:
Утоните, какого уровня ошибка - PHP или БД (ошибка связи с БД, ошибка в запросе)? На что реагировать-то надо?
Вопрос: Как чужой код привести в порядок, читаемый вид?

Лучший ответ:
1. Он минифицирован
2. Он обфусцирован

Первое можно решить простым автоформатом.
Второе нужно самому разбирать

Худший ответ:
Для JS можно делать автоформат кода
https://beautifier.io
Вопрос: Каким браузером можно заменить chrome?

Лучший ответ:
Смотрю в сторону оперы
Это тот же Хром, просто с другим оформлением.
Firefox пойдёт.

Худший ответ:
"Достаточно много" - это сколько? У меня сейчас в Firefox открыта 1441 (тысяча четыреста сорок одна) вкладка, по загрузке выглядит вот так:

понятно что большинство вкладок неактивны, но сам факт показателен.

Для сравнения - Chrome с 19 (девятнадцатью) вкладками:


Всё это на ноутбуке шестилетнего возраста с i7 с 4 ядрами и 24Gb памяти. Оба браузера запущены два дня назад, но вообще я их никогда не закрываю, просто ноут перегружал. Весь браузинг идёт только в Firefox, в Chrome висит Gmail, несколько Google Docs и штук 5 других страничек.
Вопрос: Как подключиться к WhatsApp Bussiness API?

Лучший ответ:
Для стран бывшего советского союза они не предоставляют api. Да и у себя далеко не всем

Худший ответ:
Есть много разных статей, вот например эта Как мы подключили официальный бизнес API WhatsApp через Twilio | AiApps.Pro Чат-боты для бизнеса | Яндекс Дзен (yandex.ru)
Там все подробно расписано
Вопрос: Зачем в рест апи ид шлется в самом урле, а не в дате или не в квери?

Лучший ответ:
Если запрос сделан методом GET, то параметры получают из url. В других методах ( POST, PUT, DELETE ) данные получают из тела запроса и url.

Методом GET получают, например, все новости сайта не передавая никаких параметров.
Если нужно получить одну новость, то передают к примеру её id.

Методом GET отправляются все запросы с браузера ( то, что написано в адресной строке ).

query параметры нужны, например, для организации лимита вывода новостей на одну страницу.

Худший ответ:
Вопрос в принятии правил REST. Я тоже поначалу так думал - что нафиг нужно всякие GET, PATCH, PUT. Зачем, если есть POST и в нем все прекрасно можно передавать в теле запроса и разбирать тоже. Однако, сейчас делаю приложение совсем с нуля и бэк пилю на Yii по всем правилам - GET - получение данных, POST - создание и т. д.
Если разобраться с конкретным фреймворком - создание такого API становится намного проще, когда количество функции этого API переваливает за пару десятков. А для простеньких на пяток-другой можно и правила понарушать.
Но когда приходит время разбираться, почему что-то пошло не так и/или надо что-то добавить/переделать - такой "простой" API превращается в кошмар. Да и документировать его сложнее
Вопрос: Как передать аргументы из скрипта пхп в питон и обратно?

Лучший ответ:
Поднять каждый из них как отдельное web-приложение, вызывающее друг друга. В такой схеме вообще без разницы на чём скрипты написаны.

Худший ответ:
Ммм может путем гет запроса?)
Вопрос: Как найти схему дешифратора кода (instruction decoder) Intel 8080?

Лучший ответ:
Для начала, 8080 это коммерческий процессор Intel. Не opensource продукт. Вполне возможно, что никто и не публиковал схемы и инструкции, которые вполне могут быть еще защищены и коммерческой тайной и патентами. Можно попробовать устроиться в компанию intel и там изучить архивные документы.

Во-вторых пробовали просто искать?
даже на вики есть полезные ссылки
https://en.wikipedia.org/wiki/Intel_8080
https://web.archive.org/web/20070928060215/http://...

kazojc.com/elementy_czynne/IC/8080-3.pdf
https://pastraiser.com/cpu/i8080/i8080_opcodes.html
www-classes.usc.edu/engr/ce/108/computer.pdf

Худший ответ:
Вот какой то эмулятор 8080 на питоне, там в коде есть ссылки на инструкции и прочее.

https://github.com/JetStarBlues/Intel-8080-Emulato...

www.jk-quantized.com/blog/2018/03/16/8080-emulator
Вопрос: Отправка фотографии с сайта на сервер. Как реализовать?

Лучший ответ:
Воспользуйтесь этой библиотекой на стороне сервера, это самый простой и действенный вариант.
По итогу будет что-то такое:
const multer = require('multer');

const store = multer.diskStorage({
  destination(req, file, cb) {
    cb(null, './src/public/images'); // ваша папка для файлов на сервере
  },
  filename(req, file, cb) {
    cb(null, Date.now() + '_' + file.originalname);
  },
});

const upload = multer({ storage: store }).single('file'); // загрузка одного файла
const uploadMany = multer({ storage: store }).array('files'); // загрузка массива файлов

router.put('/test', upload, (req, res, next) => {
 req.body.file // файл 
});
router.put('/test', uploadMany, (req, res, next) => {
 req.body.files // массив файлов
});

На клиенте воспользуйтесь form-data:
const formdata = new FormData();
formdata.append("file", fileInput.files[0], "/C:/file-path/file.png"); // если файл один 

formdata.append("files", fileInput.files[0], "C:/file-path/file.png"); // если файлов много
formdata.append("files", fileInput.files[0], "C:/file-path/file.png"); // если файлов много

const requestOptions = {
  method: 'POST',
  body: formdata,
  redirect: 'follow'
};

fetch("url/test", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Худший ответ:
async upload(e) {
                e.preventDefault()
                const formData = new FormData()
                formData.append('performer', this.performer)
                formData.append('album', this.album)
                for (let file of this.audio) {
                    formData.append('audio', file)
                }
                formData.append('preview', this.preview[0]);
                try {
                    const res = await fetch(`${keys.BASE_URL}/music/add`,
                        {
                            method: 'POST',
                            body: formData
                        }
                    );
                    const result = await res.json()
                    this.success = result.success
                    this.id = result.id
                } catch (e) {
                }
            }
Ну вот тебе кусок кода разбирайся, правда он для vue, но все довольно понятно. На node нужен плагин multer.
Вопрос: Хорошая ли книга?

Лучший ответ:
Могу порекомендовать Марк Лутц - "Изучаем Python". Она, конечно, большая, но хотя бы нормально раскрывает python объекты. Но после нее, по крайней мере, от вас не будет тупых вопросов по python, которых тут и так достаточно.

Худший ответ:
Марк Лутц, Мэтиз Эрик почитай
Вопрос: Wordspress и написание кода вручную, в чем разница?

Лучший ответ:
Потому что любой конструктор ограничен тем набором блоков, которые он предоставляет. Грубо говоря, невозможно собрать из Лего штопор даже если блоки будут стальными: форма не позволит. Так что как только вам нужно сделать что-то не укладывающееся в стандарт конструктора, тут же приходится что-то учить.

Худший ответ:
Hochusalat, 
Во-первых: WordPress -- Это не конструктор. В нем есть визуальный редактор, но это не про то. ВП -- это система управления контентом. Когда вам нужно легко добавлять новый контент, находить и изменять старый, управлять что видно всем а что скрыто от внешних пользователей, хранить черновики, планировать публикации, навесить пароль на страницу, управление пользователями, правами пользователей и вот это вот всё. 

Во-вторых: 
я могу спокойно клепать сайты на этих конструкторах? 
Можете. От чего ж нет. Если задача это позволяет -- пользуйтесь на здоровье. Но не всякую задачу можно в принципе решить конструктором. Вот тогда и нужны глубокие знания.
Вопрос: Как заблокировать доступ из других стран?

Лучший ответ:
Используйте плагин IP2Location Country Blocker или iQ Block Country


Худший ответ:
тут список
Как сделать: тут
Как в apache списком - тут
Вопрос: Одинаковые ли условия в этом js-коде?

Лучший ответ:
Одинаковые, поскольку сравнение нестрогое в первом случае.
Нет никакой разницы в скорости выполнения этих двух вариантов.
С такой - нет.

P.S. if (houme.checked || street.checked)
P.P.S. home

Худший ответ:
checked  в чекбоксе вернет или тру или фалс, зачем еще раз сравнивать, если в ифе и так тру или фалс?
Вопрос: У меня есть 2 страницы на php, как мне их открывать в рандом порядке либо стр№1 либо стр№2 на php?

Лучший ответ:
Ты бы еще "сложный" уровень вопросу поставил.include rand(0,1) ? 'page1.php' : 'page2.php';

Худший ответ:
if (rand(0, 1) === 0) {
  "СТР№1"
} else {
  "СТР№2"
}
Вопрос: Какой мак взять для программирования?

Лучший ответ:
Самый дорогой, какой сможете себе позволить.
Это как раз тот случай, когда цена оправдывает качество.

Худший ответ:
>>>думал взять mini 12 года, но под большим вопросом потянет ли
у меня для личных домашних проектов (XCode, Objective-C) всяких основная машинка - MD387 с апгрейдами - память увеличена до 8 Гиг и SSD. всё тянет. другой вопрос что они больше обновлений не получат (официально). Но "на попробовать" вполне пойдёт. Как эконом-вариант (только обязательно надо купить трекпад(хоть самый простой, первого поколения) и родную клавиатуру(можно(и даже лучше) - полноразмерную проводную - это не дорого).
Можно аймак 21" 14 года поискать.
Можно макбук про 2013-14-15(но тут смотреть надо хорошо на предмет ремонтов и всего такого).
В общем что я хочу сказать - у меня в личном владении указанный мак Мини и макбук про late 2013 8/256 - для программирования личных проектов обе машинки вполне себе хороши.
Вопрос: Как работает маршрутизация в интернете?

Лучший ответ:
Именно благодаря NAT он и знает.
Наряду с адресами источник/назначение могут также заменяться номера портов источника и назначения.

Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер «на лету» транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрет у себя в таблице запись об n-м порте за сроком давности.

https://ru.wikipedia.org/wiki/NAT#%D0%9F%D1%80%D0%...

Худший ответ:
https://linkmeup.ru/sdsm/
читать до понимания
Вопрос: Java swing. Не выходит добавить картинку и иконку. Как быть?

Лучший ответ:
Во-первых, нужно разобраться с тем, что такое JAR, как он упаковывается, как устроен, как с ним работает рантайм и т.п. Во-вторых, нужно ознакомиться с понятием "ресурс" и научиться с ресурсами работать в Java. В-третьих, нужно почитать документацию Maven на предмет того, как он работает с ресурсами.

Худший ответ:
Выдернул из очень старого кода:
ImageIcon icSave = new ImageIcon(SignalProcess.class.getResource("/resources/save64.png"));
Ресурсы упаковывал внутрь jar
Вопрос: Существует ли ассинхронное программирование в языке Си и где про него почитать?

Лучший ответ:
Начать с чтения про мультиплексирование неблокирующихся сокетов, epoll, kqueue и iocp, продолжить знакомством с библиотеками libevent и libuv.

Худший ответ:
Можно поглядеть туториалы по libuv
Вопрос: Залитый ноутбук. Как это скрыть?

Лучший ответ:
Что было однажды, может и не повториться. Но что случилось дважды, обязательно случится и в третий раз.

Здесь главный вопрос не в том, как скрыть, а как сделать так, чтобы это не повторилось. Совет "быть аккуратней" вряд ли сработает (см. эпиграф). Так что основной совет - больше никогда не пить (и не есть) за компьютером. Для пищеварения это тоже полезно. Но разве можно вот так просто взять и избавиться от привычки? Нужна сила воли.

А скрыть - очевидно, обманом, это либо заказать ремонт, либо самостоятельный ремонт, либо покупка ноута / его частей, либо подставить кого-то, чтобы он попал на бабки, а не вы и т.д. Всё это гадко и не стоит того, чтобы оставшуюся часть жизни считать себя какашкой. Даже в случае увольнения вы сами будете продолжать помнить, кто вы. Вспоминать не приятно, делиться с кем-то - тоже. Оно вам надо, такой багаж иметь? Лучше честно рассказать, и дай бог вас снова простят, но если нет - придётся расплачиваться. Это в любом случае придется делать, вопрос лишь в цене - деньгами или частичкой своей души. Что дешевле?

Худший ответ:
Парадоксальный ответ, но ремонт (скорее всего, путем замены материнской платы) отлично скроет следы залива.

Даже если все отмыть, съеденные дорожки и контакты, а также следы коррозии на крепеже будет видно.
Вопрос: Что посоветуете выбрать для организации АТС в офисе (30 сотрудников), решение на Asterisk-е или «железе»?

Лучший ответ:
 всех их необходимо сохранить, в том числе как внешние телефоны
Asterisk.Расширение возможно будет до 40-50 телефонов и то с вероятностью 5%. 
Asterisk.Подключение другого (дополнительного) оператора и подключение к CRM Битрикс 24 с вероятностью 75% будет. 
Asterisk!Какой вариант Вы бы выбрали и почему?
Уж точно не хреновину за 100k. Лучше поднимите Астериск на каком-нибудь простеньком сервере, а из сэкономленных денег выбейте себе премию. Это работает, проверено (я про премию, Астер тоже).

Худший ответ:
Входных данных маловато и картина не полная.
В любом случае лучше сразу договаривайтесь со своим оператором чтобы ваши номера пригнали уже по е1 или sip. В любом случае это гораздо удобнее и стабильнее чем юзать аналоговый fxs\fxo, кроме того сможете организовать резервный канал(в случае с sip хотя и с е1 можно договариваться). Просто поверьте что надо, просто надо.
Если у вас нечто в роли call центра на всех то тут лучше сразу смотреть на что то типа infinity call center где неплохая ТП и хорошая заточка под эти дела, в т.ч. интеграция с битриксом.
Если тут скорее гибридная связь(call center и внутрянка) то смело берите для внутрянки любую железную реализацию АТС. Т.е. условно говоря можете взять какой нибудь Eltex TAU-ХХ и развернуть внутреннюю телефонию по меди до абонентов(если уже есть разводка и аппараты аналоговые) + критичные аппараты по ip. Отдельно что то под call center. Между собой соответственно вяжете атски по sip.
Можно еще глянуть в сторону 3cx если нужно чтобы была ТП.
По поводу астериска\фрисвитч , ну если у вас будет штатный админ\телефонист который сможет все это оперативно делать\поднимать\обслуживать\доделывать то вперед. Руку на сердце без адекватного человека кто все это будет поддерживать не стоит связываться, кроме того даже если человек и будет но придет другой то новый один хрен потратит уйму времени чтобы разгрести все это и еще вероятнее скажет что тут был рукожоп и все надо переделать с нуля.
Вопрос: Ноутбук под Linux. Какой выбрать?

Лучший ответ:
Размер экрана как можно больше, разрешение должно быть адекватное, иначе глаза сломаются читать мелкий текст. Матрица - матовая (иначе будут блики). Оперативки как можно больше.

Потенциального кандидата пробивать в Гугле [название модели] + Linux, чтобы не нарваться на проблемное железо.

Худший ответ:
Xiaomi enchanted edition 15", металлический корпус, ссд на 1тб, проц 10 поколения, 16 Гб ОЗУ, клавиатура только англ, но лазером гравируется за 1-2 к рублей довольно качественно. я и куча моих друзей брали на taofang, там же гравировку заказали. Себе поставил Федору, жене Винду, все четко почти год. Ценник около 70к, клавиатура как на маке. Батарею держит по 8 часов, кручу VSCode, докеры, внутри от lamp до кубиков. Ansible, python, go и гуглхром, для облегчения жизни с кучей открытых вкладок плагин The great suspender. Да это несколько выходит за рамки 50к, но это явно дешевле и лучше XPS, в котором не все металлическое :) и ценник там от 100. Рекомендую.
Вопрос: На каких сайтах есть вакансии работы модератором дискорд/телеграм и прочих каналов?

Лучший ответ:
Лол, "вакансии".
На hh.ru же.

Худший ответ:
Эм.. да таких вроде как не существует.
Модерирование мелких вещей обычно волонтерско-бесплатное.
А на крупных нужны не модераторы, а администраторы, которые организуют автоматическое модерирование и настроят систему для волонтеров.
Вопрос: Как отрендерить и спарсить сайт на PHP?

Лучший ответ:

wkhtmltoimage (часть пакета wkhtmltopdf) раз два или прямо через exec(); ну или вообще модуль для php
chromium-headless раз два или так же через exec();
firefox-headless документация либу-враппер искать лень, но можно так же через exec();


ps: через puppeteer тоже идея имеет место быть, но для скриншота страницы, имхо, избыточно

Худший ответ:
Лучше всего - поднять на ноде https://github.com/puppeteer/puppeteer и связать его по API с проектом на PHP.
Вопрос: Как сделать чтобы синхронно вводилось значение поля?

Лучший ответ:
Сделать объект с транслитерированными символами:

const letters = {
  'а': 'a',
  'б': 'b',
  'в': 'v',
  ...
};
В стейте хранить хранить оригинальное и транслитерированное значения:

state = {
  value: '',
  translitValue: '',
}
При изменении содержимого инпута с оригинальным значением обновлять оба:

onChange = ({ target: { value } }) => {
  this.setState({
    value,
    translitValue: value.toLowerCase().split('').map(n => letters[n] || n).join(''),
  });
}
<input value={this.state.value} onChange={this.onChange} />
<input value={this.state.translitValue} readOnly />
https://jsfiddle.net/oeL4u68t/

Худший ответ:
Если я правильно понял вопрос, нужно что-то вроде этого: https://codesandbox.io/s/priceless-banzai-orcn3
Вопрос: Пора-ли использовать css grid?

Лучший ответ:
Какой проект? От этого всё зависит ведь. Если много пользователей приходит с ie11 и подобного, то, наверное, не стоит

ПС
мы уже приехали?
мы уже приехали?
мы уже приехали?
мы уже приехали?
а сейчас?
мы уже приехали?


Худший ответ:
Индикатором я думаю, стоит брать, когда сабгриды выйдут в релиз. 

Впрочем я противник поддержки IE исключительно в угоду IE, поэтому давно уже активно использую гриды.
Вопрос: Можно ли позиционировать себя специалистом SRE без опыта программирования?

Лучший ответ:
Да пофиг вообще, хоть сисадмином назовитесь. Навыки программирования либо всерьез требуются, либо почти нет, от вакансии зависит. Значение терминов "devops", "sre" и "сисадмин" весьма размыто.

Худший ответ:
Краткий ответ на вопрос в заголовке

> Можно ли позиционировать себя специалистом SRE без опыта программирования?

такой - нет, нельзя.
Вопрос: Зачем нужен then в промисах если есть await?

Лучший ответ:
«Вначале были промисы»
Затем, позже, сделали разноцветный синтаксический фантик для них — async / await

У промисов держателем кнопки «пауза» являтся очередной промис. У этого промиса, как будильника, можно вызвать метод then() — как приклеить стикер на циферблат, где написано, что надо будет сделать, когда время придёт. 
В приклеенный метод then() ничего не попадает «сразу». Вернее, в него сразу передают 2 функции: одну вызовут, когда промис выполнится; вторую – если обломается: .then(onResolve,  onError)
Стоит будильник, на нём наклейка then, на ней написано, что сделать, если ОК и если облом. Ждём-с. Тикает.

await прячет под капот движка JS лишние провода, и наверху просто возвращает результат выполненной асинхроты. Или кидает Exception в случае облома — его надо ловить обычными try..catch

Перечитав вопрос, предположу, что неправильно готовили промис с запросом. Надо примерно так:const requestPromise = new Promise(function(res, rej) {
  setTimeout( function(result){ // имитация асинхр запроса куда-то
    // тут, типа, наконец получили ответ
    if (result.error_code) {
      rej(error_code); // облом
    } else {
      res(result); // обещание выполнено с результатом
    }
  }, 2000);
});

// здесь requestPromise – это Promise в статусе "pending"

requestPromise.then( // сюда ничего не попадает «сразу». Оно внутри ждёт. Терпеливо.
  function(result) {console.log(result, "мы молодцы");},
  function(error) {console.error(error, "облом вышел");},
);При желании можно навесить ещё собак then'ов на тот же Promise:requestPromise.then(r => console.log("result log:", r));

Худший ответ:
Вы можете дожидаться момента выполнения промиса или через then, или через await. Await делает почти то же самое, что и then. Только await — синтаксическая фишка, а then — семантическая. Если нужно уточнить — спрашивайте.