Цитата:
Представим два сервера с одной версией ноды и бабеля. На первом new Date().toLocaleString(params) выдает отформатированные строки, а на втором то же самое что и new Date(). Я так понимаю это как-то связано с системными настройками? Подскажите плз куда копать. |
Цитата:
Рекомендую поставить moment и не любить себе мозги :) |
trikadin,
Красотень :) |
Цитата:
|
Ребят. Объясните плз профит async/await по сравнению с цепочками промисов.
Самый простой пример, что я смог придумать :) 1 Объем кода такой же +/- 2 приятность синтаксиса - спорно. Кому что больше нравится. ??? Больше не смог ничего придумать. Подозреваю, что я просто не умею готовить. async function some() { console.log(1); await new Promise(resolve => { setTimeout(() => { console.log(2); resolve(); }, 1000); }); console.log(3); }; some(); function some() { console.log(1); new Promise(resolve => { setTimeout(() => { console.log(2); resolve(); }, 1000); }).then(() => { console.log(3); }); } some(); |
yazonnile,
1. В большинстве случаев это не будет явный вызов промиса а выззов какого то метода. 2. суть в том что у тебя получится асинхроный код по сути записаный как синхронный. function getAsyncData() { return new Promise( ( resolve ) => { setTimeout( () => { resolve("data"); }, 1000 ); } ) } async function getData(){ var val = await getAsyncData(); // далее пишем синхронный код var val = await getAsyncData();// снова получаем асинхронный данные //дальше пишем синхронный код и не каких callback } getData(); |
Цитата:
const loginsTaken = new Set(); class User { async register() { let login = await this.request("login"); if (loginsTaken.has(login)) { do { this.send("login is taken already"); login = await this.request("login"); } while (loginsTaken.has(login)); } loginsTaken.set(login); let language = await this.request("language"); let password = await this.request("password"); let email = await this.request("email"); Object.assign(this, {language, login, password, email}); await this.save(); this.send("registered successfully"); } } Перепишешь на чистые обещания? |
Спасибо за разъяснения!
Erolast, код, который вне if можно легко переписать на цепочку. А код внутри if я бы вынес в отдельную функцию. Но идею я понял. Спасибо. cyber, В большинстве случаев это не будет явный вызов промиса а выззов какого то метода. А как интерпритатор поймет, что ему передается асинхронный вызов? К примеру var result = await this.some(); Метод some должен же вернуть промис, чтобы код работал правильно. Или я недопонял? |
await может принимать что угодно, хоть
await 1 И это позволяет писать одинаковый интерфейс для синхронных и асинхронных вызовов. |
Да. Но если там асинхронный вызов?
К примеру await setTimeout(a => 10); Т.е чтобы await сработало правильно и дождалось результата - нужно вернуть промис же? |
Часовой пояс GMT +3, время: 13:25. |