Цитата:
Представим два сервера с одной версией ноды и бабеля. На первом 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, время: 22:54. |