
Анатолий
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