|
|
3.36, Агент (?), 09:50, 20/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
Ничего мы не получаем, получаем разве что файл статического импорта, .mjs-расширение которого вообще то формальность, и который ещё нужно импортировать. И какое отношение статические импорты/экспорты имеют к промисам/async/await?
| |
|
4.38, Шелмимо (?), 10:09, 20/10/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
form@work:/tmp$ cat test.mjs
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
console.log(new Date());
await sleep(2000);
console.log(new Date());
form@work:/tmp$ node test.mjs
2021-10-20T07:09:19.174Z
2021-10-20T07:09:21.179Z
form@work:/tmp$
| |
|
5.39, Агент (?), 10:14, 20/10/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Вопрос был в чём? Предоставить .mjs-модуль и что? Должна была произойти магия, где сразу можно await использовать? С промисом и я могу.
| |
|
6.41, Шелмимо (?), 10:16, 20/10/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Причем тут с промисом?
await в принципе применим либо к промису либо к async функции.
Речь о том, что await можно использовать в верхнем уровне без всяких async если файл - модуль.
| |
|
7.42, Шелмимо (?), 10:18, 20/10/2021 [^] [^^] [^^^] [ответить]
| +3 +/– |
Вот так, чтобы понятнее было что имеется в виду:
form@work:/tmp$ node test.mjs
2021-10-20T07:17:53.543Z
2021-10-20T07:17:55.548Z
form@work:/tmp$ mv test.mjs test.js
form@work:/tmp$ node test.js
/tmp/test.js:4
await sleep(2000);
^^^^^
SyntaxError: await is only valid in async functions and the top level bodies of modules
at Object.compileFunction (node:vm:352:18)
at wrapSafe (node:internal/modules/cjs/loader:1025:15)
at Module._compile (node:internal/modules/cjs/loader:1059:27)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1147:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47
Node.js v17.0.0
form@work:/tmp$
| |
7.56, Шпаньков (?), 14:05, 21/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
>await в принципе применим либо к промису либо к async функции.
Нет. await применим к абсолютно любому значению. Это просто сахар над Thenable.
await 123 // 123
await null // null
await {} // {}
await { then(r) { r('hello') } } // 'hello'
| |
|
|
5.40, Шелмимо (?), 10:15, 20/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
Кстати нода сама подсказывает эту фичу: если попытаться использовать await за пределами async, он подскажет что await можно использовать так же в теле модуля.
| |
|
|
|
|
1.7, Аноним (7), 23:27, 19/10/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
А посоветуйте актуальной литературы? Ну там лучшие гайдлайны, популярные пакеты, всё вот это. В топе выдачи гугла ничего приличного нет. Лет 10 не трогал ноду.
| |
|
|
3.44, Аноним (7), 12:14, 20/10/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Во-первых, это не литература. Текст гораздо проще воспринимать. Во-вторых, это ужасно. Ужасное качество записи, нет нормального микрофона, диктор мычит и толчёт воду в ступе, шокает и гыкает. Очень много времени тратит на совсем уж примитивные и очевидные вещи, повторяя их по несколько раз. Удручающе,
| |
|
|
|
2.31, Аноним (31), 08:41, 20/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
... мс купил npm. Но с другой стороны npm максимально ненужный трешняк, который сделал из здравой идеи полное УГ.
| |
|
1.18, Аноним (18), 01:09, 20/10/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
Вот это днищенское дно... постоянные критические ошибки и уязвимости. В каждом выпуске. И конца и краю этому не видно.
При том как я понимаю дело не в самом Node JS, а в убогом HTTP протоколе.
| |
1.19, Аноним (19), 01:48, 20/10/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
Нельзя не восхититься всё-таки изяществом JS как языка с его прототипным ООП. Где ещё найдешь такое?
| |
|
2.26, Наноним (?), 07:46, 20/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
Lua. Вообще Lua увернулся от "болезни С++", в отличие от ECMAScript. В Lua до версии 5.4 тащили только действительно нужные вещи. Единственная вещь, которой там реально не хватает - RAII, но её и в жабаскрипте нет.
С Lua ситуация "в топку программирование, стану проституткой" не так вероятна, там язык очень простой и, главное, понятный, а не это "this может указывать на класс метода, а может не указывать", "у нас один оператор для конкатенации строк и сложения чисел". И рантайм не весит минимум 20 мегабайт, как у ноды
| |
|
3.28, Аноним (31), 08:37, 20/10/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Из-за конструкций типа ~= Lua полностью и бесповоротно не нужен.
| |
3.29, n00by (ok), 08:39, 20/10/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
RAII помимо захвата ресурса при инициализации подразумевает детерминированное освобождение, что затруднено при использовании сборки мусора.
| |
3.35, анон (?), 09:13, 20/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
Жаль только вакансий маловато, а которые есть Lua указан как второй язык
| |
3.49, DeadMustdie (??), 22:27, 20/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
Ага.
> там язык очень простой и, главное, понятный
Особенно хорошо в Lua с числовыми типами (все целые пусть будут вещественными, так ведь гораздо удобнее!).
А уж как там чудесно работа с Юникодом устроена - не пересказать!
| |
|
4.52, Аноноша (?), 00:09, 21/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Ага.
>> там язык очень простой и, главное, понятный
> Особенно хорошо в Lua с числовыми типами (все целые пусть будут вещественными,
> так ведь гораздо удобнее!).
> А уж как там чудесно работа с Юникодом устроена - не пересказать!
https://www.lua.org/manual/5.3/readme.html#changes
> Main changes
>
> integers (64-bit by default)
> official support for 32-bit numbers
> bitwise operators
> basic utf-8 support | |
|
|
|
1.23, kai3341 (ok), 07:33, 20/10/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
> Выпуск серверной JavaScript-платформы Node.js 17.0
ага, вот почему у меня билд фронта упал
| |
|
2.32, Аноним (32), 08:45, 20/10/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
Потому что кто-то скачивает каждый раз свежую node при каждом билде?
| |
|
3.48, kai3341 (ok), 21:40, 20/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Потому что кто-то скачивает каждый раз свежую node при каждом билде?
Потому, что CI проверяет актуальность docker image при каждом билде
И нет, я был неправ. Свежая nodejs была не при делах
| |
|
|
1.30, ryoken (ok), 08:41, 20/10/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
Опять эта хрень час пересобираться будет... Какой осёл вообще додумался браузер на ней делать..?
| |
|
|
3.55, ryoken (ok), 13:29, 21/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
> А что плохого? Ну кроме С++ под капотом?
Ну я ж говорю - пересобирается долго :D.
| |
|
|
1.54, Аноним (-), 09:42, 21/10/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
самый безопасный инструмент, миллионы самых быстрых программистов проверяют в продакшине
| |
|