>zig c++ -o cc-version-1.exe cc-version.cc
>zig c++ -o cc-version-2.exe -std=c++23 cc-version.cc
>cc-version-1.exe
C++17
>cc-version-2.exe
pre-standard C++
c
, с последующим flock() и ftruncate(), но такое поможет, если flock() есть везде где может происходить запись
async-функция всегда возвращает промис
получить из отресолвленного промиса значение можно только через колбэк, переданный в then()
async/await — это, по большому счёту, синтаксический сахар, скрывающий работу с колбэками и выглядящий как простой линейный код, но он только так выглядит, а под капотом всё равно это промисы
далее, возвращение значения из колбэка, переданного в then(), в данном контексте не имеет никакого смысла, т.к. возвращаемое им значение получает сам промис, а поскольку then() всегда возвращает новый промис, который отресолвится со значением, которое вернул колбэк, то эта цепочка может быть бесконечной
then() всегда возвращает новый промис, чтобы можно было выстраивать такие вызовы в цепочку