Анатолий
29.09.2018
10:32:52
Alexander
29.09.2018
10:32:54
Анатолий
29.09.2018
10:32:56
Это лучший код эвар!
Vitaly
29.09.2018
10:33:02
Google
Alexander
29.09.2018
10:33:25
Анатолий
29.09.2018
10:33:31
причём не просто колбек, асинхронный колбек!
10 из 10
Vitaly
29.09.2018
10:33:44
Анатолий
29.09.2018
10:33:51
Ну ладно, совсем загнобили )
Alexander
29.09.2018
10:34:03
Анатолий
29.09.2018
10:34:29
Давайте хоть перепишем код парню, чтоб не просто ругаться :)
Vitaly
29.09.2018
10:34:29
тут это называется критика(с)
Анатолий
29.09.2018
10:34:40
разочек
Vitaly
29.09.2018
10:35:10
можно, но со скриншота переписывать не комильфо
Анатолий
29.09.2018
10:35:16
Ну тогда подождём самого кода
Alexander
29.09.2018
10:35:22
Google
Анатолий
29.09.2018
10:36:39
Брать чужие куски говнокода, делать конфетку и обтекать с того, как хорошо получилось
Alexander
29.09.2018
10:37:18
Анатолий
29.09.2018
10:37:37
Знаешь там, взять старый проект и все промисы переписать на асинки
ммм, йамми
фап фап
Nikolay
29.09.2018
10:38:23
Хы, асинки ради асинков :)
Сергей
29.09.2018
10:40:26
тот момент, когда человек не понимает сути промисов и асинков
.then(async
это конечно божественно
Nikolay
29.09.2018
11:02:01
Ivan
29.09.2018
11:03:53
Дело в том что получение записи асинхронно, отправка тоже асинхронна и удаление асинхронно
http://jsfiddle.net/#&togetherjs=DQrBg7Oe3S
Покажите как правильно
Vitaly
29.09.2018
11:07:38
Ivan
29.09.2018
11:07:39
Я буду только признателен
Ты не поверишь, но это только так работает
Dika
29.09.2018
11:08:27
.then(async
это конечно божественно
И чем .then(async плох?
Например, здесь:
getPromise()
.catch(tap(console.error))
.then(async x => {
const a = await doFirst(x)
const b = await doSecond(a)
return String(b)
})
Сергей
29.09.2018
11:08:53
во вторых там он вообще не нужен
Google
Сергей
29.09.2018
11:09:14
Dika
29.09.2018
11:09:14
Yura
29.09.2018
11:09:35
Nikita
29.09.2018
11:09:39
Ivan
29.09.2018
11:09:49
Dika
29.09.2018
11:10:13
Nikita
29.09.2018
11:10:25
А почему просто все на асинке не построить
зачем там .then вообще тогда
Dika
29.09.2018
11:10:37
Сергей
29.09.2018
11:10:38
напиши что ты получить хочешь
Nikita
29.09.2018
11:10:41
Сергей
29.09.2018
11:10:45
Dika
29.09.2018
11:11:07
да
это будет менее красиво
Сергей
29.09.2018
11:11:30
бля
Ivan
29.09.2018
11:11:32
Сергей
29.09.2018
11:11:34
ну перепиши на .then
не надо делать говно из смеси
разбей на функции и т.д.
Nikita
29.09.2018
11:11:48
Это будет более красиво, но если тебе так не нравится трайкеч - можно сделать
await somePromise().catch(handleError)
await otherPromise().catch(handleError)
Так можно и разные хендлеры нацепить чтоб более вариативно обрабатывать
Google
Vitaly
29.09.2018
11:12:40
почему ты сделал и обычный коллбек и await?
Ivan
29.09.2018
11:13:18
Мы ожидаем пока не отправится сообщение
Vitaly
29.09.2018
11:13:28
так ты мог после отправки и обработать сообщение
а не внутри коллбека
response = await smtpTransport.sendMail(createMessage());
...
Dika
29.09.2018
11:14:09
разбей на функции и т.д.
async function process (x) {
const a = await doFirst(x)
const b = await doSecond(a)
return String(b)
}
getPromise()
.catch(tap(console.error))
.then(process)
Можно .then(async вынести в другую функцию, да, согласен
Vitaly
29.09.2018
11:14:19
ну и error это try/catch в данном случае
Сергей
29.09.2018
11:14:34
здесь у всех функций максимально кривое api
Ivan
29.09.2018
11:15:44
хм, сейчас попробую
Сергей
29.09.2018
11:16:20
но опять же, если getRecord или sendMailMessage выбросит ошибку, цикл прервется
и здесь цикл будет последовательным
Kelin
29.09.2018
11:16:42
Люди, видимо, не понимают, для чего сделали асинки
И пихают их везде, говоря, что так лучше
Vitaly
29.09.2018
11:17:58
ну и это можно как-то так переделать, сильно не увлекался
```
async function sendMailMessage(message, uri) {
const smtpTransport = mailer.createTransport(authMail);
try {
const sendResponse = await smtpTransport.sendMail(createMessage(message));
console.log("Message sent");
} catch (error) {
console.error(error);
}
const deleteResponse = await requestify.delete(uri, authRest);
deleteResponse.getBody();
console.log("Delete in Service Manager message")
smtpTransport.close();
}
```
это если "дословно"
Сергей
29.09.2018
11:17:59
и асинки и явные промисы имеют минусы и плюсы
их можно использовать в одном проекте
но не надо смешивать их в пределах одной функции
не надо юзать везде let, если не меняешь значение переменной
Ivan
29.09.2018
11:19:02
Dika
29.09.2018
11:19:17
Google
Сергей
29.09.2018
11:19:18
бля, хватит изучать кусок жс, а
то недоизучили async/await
теперь уж не знают о let/const
Alexander
29.09.2018
11:20:03
может @js_noobs_ru?
Ivan
29.09.2018
11:20:22
Вот как хорошо было в ES5
var
Kelin
29.09.2018
11:20:32
Бля
Triple
29.09.2018
11:21:16
ребят, есть ли бест практис для масштабируемого REST API на node.js без express\fastify...etc?
Ramil
29.09.2018
11:21:37
Чё с орм на ноде?
Созрело для продакшна?
Cenator
29.09.2018
11:22:13
Сергей
29.09.2018
11:22:14
Triple
29.09.2018
11:22:50
ок, без фреймворков, на чистом http.createServer))
Сергей
29.09.2018
11:23:11