szQocks, сервер не мой. Правда, оказалось что пагинация есть, в краткой документации не было в примерах, а в полной нашел.
Если делать свою прослойку с редисом, то это надо где-то поднимать сервер, а бесплатных сервисов таких наверное нет. В будущем я думаю перенести на электрон, чтобы было настольное приложение с локальной БД. Но это слишком много технологий, так что пока делаю хотя бы базовую версию в браузере.
А, т.е. имеется ввиду не то html-дерево, которое получается в итоге в браузере, а реактовское дерево?
P.S. В самой документации реакта есть информация про всякие вещи типа жизненного цикла компонента, монтирования\размонтирования и т.д.? Или надо отдельно гуглить?
Alexandroppolus, да мне в общем-то не ради переписывания надо было, а просто чтобы адекватную аналогию придумать для упрощения запоминания. Затем сахар и придумывают, чтобы не изголяться, а писать более наглядным образом. Если аналогия что все после await, грубо говоря, попадает в then, более-менее адекватная, то мне этого вполне достаточно.
Да, действительно. В первом примере у меня нет setTimeout, поэтому работает. Если добавить, то скрипт будет тоже останавливаться.
Но вообще setTimeout применяют для имитации длительной работы. А если предположим в промисе будет какая-то настоящая функция (не моя, а библиотечная), которая выполняется асинхронно и в ней возникнет ошибка? Тогда как?
Алексей Уколов, просто я пока писал комментарий, вы уже дополнили ответ по 4 ситуации. Ковыряться в деталях реализации я не собирался, это правда не особо нужно. В целом я теперь понял, что к чему. Мне не хватало вот именно этой детали - что берется результат колбэка и оборачивается в резолвленный промис (ну или если ошибка, то в отклоненный).
Насчет того, что в статьях и курсах хорошо написано, это спорно. Например, после чтения статьи того же Ильи Кантора по промисам, у меня сформировалось впечатление, что передаваемые в then функции промис использует в качестве resolve и reject. Из-за этого я не мог понять, а как тогда получается, что промис уже может быть сто лет как выполнен к моменту вызова then. Понял только после хабра, что resolve и reject - это внутренние промисовские функции, которые он нам дает чтобы сохранить результат \ ошибку в сам промис. Так что хотя в целом Кантор и хабр хорош и я по его сайту изучаю, но иногда формулировки путают или недостаточные и без форумов не обойтись.
Т.е. в ситуации 2 идет именно просто игнор, а не создание какого-то промиса-заглушки-пустышки, правильно я понял?
В ситуации 3 да, не then возвращает, а моя функция, выразился плохо, поправлю вопрос. А как это примерно выглядит? then выполняет мою функцию, получает результат и потом возвращает что-то вроде
new Promise((resolve, reject) => resolve(значение_из_моей_функции);
Так получается?
А в 4 случае как тогда? then каким-то образом анализирует тип результата и если видит, что это промис, то не создает обертку, а возвращает как есть?
Вот оно что. Проверил в локальных браузерах - там тоже в конец добавляется какой-то скрипт. А это можно как-то избежать? Ведь по сути из-за такой медвежьей услуги не работает как надо.
"Похож на json" и "json" все-таки разные вещи. Этот файл только похож и обработать его json-библиотекой не получится. К тому же я хочу сам написать программу, которая сможет это сделать. Эффективность мне не важна, главное чтобы работало и вообще посмотреть как подобные вещи делаются. +Учить js ради одной задачи я сейчас не собираюсь.
Если делать свою прослойку с редисом, то это надо где-то поднимать сервер, а бесплатных сервисов таких наверное нет. В будущем я думаю перенести на электрон, чтобы было настольное приложение с локальной БД. Но это слишком много технологий, так что пока делаю хотя бы базовую версию в браузере.