
Сергей
21.05.2017
14:26:57
кто-нибудь юзал TypeORM?

Sasha
21.05.2017
14:39:02
ребят, а вот как перебирать массив синхронно?
чтобы действия над элементом сделались, а потом уже шел следующий элемент?)

Mikhail
21.05.2017
14:42:08

Sasha
21.05.2017
14:42:28
спасибо!

Google

Sasha
21.05.2017
14:43:53

Mikhail
21.05.2017
14:45:25

Eugeniy
21.05.2017
14:51:59
Подскажите а как лучше тестировать api с сокетами?

Vladimir
21.05.2017
14:52:28
Подключиться и тетстировать

Eugeniy
21.05.2017
14:58:11
А все, кажется разобрался, глупый вопрос был

Andrew
21.05.2017
15:51:15
Классный материал почитать :)
https://medium.com/@peterchang_82818/node-security-authentication-javascript-tutorial-example-session-brute-force-rainbow-table-crack-hijack-3b6c56ee938c

Rafael
21.05.2017
15:56:47

Vladimir
21.05.2017
15:58:12
> @Fl0pZz
Я где-то посмотрел, что в js set`ы сделаны через списки и это отбило у меня любое желание их использовать
Ну это же очевидный бред

Rafael
21.05.2017
16:02:08

Ivan
21.05.2017
16:02:15

Rafael
21.05.2017
16:02:15
Я конечно могу спутать ч полифилом

Ivan
21.05.2017
16:02:50
Сделаны через хеш-таблицу

Vladimir
21.05.2017
16:02:58

Google

Vladimir
21.05.2017
16:03:27
Можно преположить что в какой то из реализаций сделано через списики - я уверен что это не так

Rafael
21.05.2017
16:04:54
Да, мои сомнения развеяны?

Андрей
21.05.2017
16:15:54
Всем привет, как можно скачать excel файл с сайта к себе на сервер?

Вячеслав
21.05.2017
16:18:02
Да легко. Переходить через браузер по ссылке на excel файл.
Можешь с помощью скрипта выкачать, если ссылка по get не доступна.

Андрей
21.05.2017
16:25:20
А по подробнее можно?

Sasha
21.05.2017
16:37:22
появился еще один вопрос, который мучает меня и не дает покоя.
В общем, вопрос следующий:
for(let i = 0; i < readyData.length; i++) {
let req = readyData[i];
req.then(answ => {
console.log(`done.`);
});
}
так вот, выполняется ли этот перебор синхронно? (как я вижу - нет)
Потому что в промисе у меня происходит коннект к БД и производится действие с ней MongoClient.connect(url, (err, db) => {
//...
db.close();
});
Как видно из вышеприведенного кусочка, в конце я закрываю соединение вручную (мало ли).
Проблема в том, что после 200+ элемента (случайно, так как доходило и до 364 эл-та) база возвращает ошибку:
... 'collection' of null.

Anatoliy Skuratov
21.05.2017
16:44:35
А почему ты не резолвишь промисы в readyData через Promise.all??

Пашок
21.05.2017
16:47:13

Sasha
21.05.2017
16:50:33

anoru
21.05.2017
16:53:36
@rmnff https://stackoverflow.com/questions/37576685/using-async-await-with-a-foreach-loop прочти популярный ответ

arts
21.05.2017
17:01:11
const promises = [
() => new Promise(...),
() => new Promise(...),
...
];
function next(i = 0) {
promises[i]().then(() => next(i + 1));
}
next();
Можно так, например.

Никита
21.05.2017
17:01:51

Пашок
21.05.2017
17:01:56
Жуть какая

Никита
21.05.2017
17:02:24
@artsdvatri А ошибки?

Сергей
21.05.2017
17:03:04

Никита
21.05.2017
17:04:25

arts
21.05.2017
17:04:31

Andrew
21.05.2017
17:04:37
часто ли на ноде пишут с использованием функций генераторов? Я чет помучился с промисами и перешел на них

Сергей
21.05.2017
17:04:53

Google

Никита
21.05.2017
17:05:12
А, стоп, так твой код вообще нерабочий.

Evgeny
21.05.2017
17:05:56

Andrew
21.05.2017
17:05:59

Никита
21.05.2017
17:06:08
Ты вызываешь уже созданные и запущенные промисы как функции.

Сергей
21.05.2017
17:06:10

Никита
21.05.2017
17:06:17
Это херота какая-то.

Сергей
21.05.2017
17:06:26
это как раз таки намного проще генераторов

Никита
21.05.2017
17:06:33
А, нет, я туплю.

Сергей
21.05.2017
17:06:36
выглядит абсолютно синхъронно

Никита
21.05.2017
17:06:42
Стоп, да, это я туплю, простите.
Не заметил () =>

Сергей
21.05.2017
17:07:08
(бля, отвечайте на сообщение, не пойму в каком треде участвую)

Никита
21.05.2017
17:07:15
Тогда это вообще синхронная штука и я не понимаю, зачем так в принципе делать.

Andrew
21.05.2017
17:07:19
)))

arts
21.05.2017
17:08:09

Сергей
21.05.2017
17:08:11

Никита
21.05.2017
17:08:23

Сергей
21.05.2017
17:08:32

Google

Andrew
21.05.2017
17:08:47

Сергей
21.05.2017
17:09:06
они вообще не для этого

Andrew
21.05.2017
17:10:47

Сергей
21.05.2017
17:13:14
для генерации?)))
для ленивых вычислений
хотя не могу придумать кейс для генераторов, когда есть промисы

Admin
ERROR: S client not available

Сергей
21.05.2017
17:13:43
вот вообще

Andrew
21.05.2017
17:14:07
зачем-то же их решили добавить в js?

Evgeny
21.05.2017
17:14:12
Фибоначчи пока не надоест

Сергей
21.05.2017
17:14:43
но промисы и асинки решают управление

Vladimir
21.05.2017
17:15:14
Генераторы в основном существуют именно для корутин
Другие кейсы их использовния гораздо реже

Сергей
21.05.2017
17:16:18
да как-то... хз
ни разу не видел эффективного их использования
та же koa, ушла от генераторов к асинкам

Vladimir
21.05.2017
17:16:56
Теперь когда есть асинки - да
Но например на генераторах можно сделать отмену корутины

Google

Vladimir
21.05.2017
17:17:36
Если кому надо

Andrew
21.05.2017
17:18:22
библиотека redux-saga полностью построена на генераторах, предполагается что писать тесты проще

Сергей
21.05.2017
17:27:54
а без библиотек, можно на генераторах что-то полезное написать?

Andrew
21.05.2017
17:28:45
хз, пытаюсь вспомнить

Сергей
21.05.2017
17:29:48
сейчас гуглю, ничего не нахожу

Дмитрий
21.05.2017
17:32:53
Я на асинхронных генераторах писал реализацию сильно разветвленного алгоритма, в котором требовался постоянный обмен данными между корутинами

Сергей
21.05.2017
17:33:37

Andrew
21.05.2017
17:34:29
одно видео нашел https://www.youtube.com/watch?v=lil4YCCXRYc
еще одно было где-то в закладках

Дмитрий
21.05.2017
17:35:15

Vladimir
21.05.2017
17:35:48
Ну на асинках то такое тоже можно сделать
Вот пример с сагой хороший

Дмитрий
21.05.2017
17:47:06
Да в принципе много вариантов, но async генераторы там смотрелись логичнее всего — многоступенчатый процесс с циклами , отменами и возвратами, распределенный между несколькими корутинами, каждая имеет довольно приличное количество входов и выходов, с логическими развилками в зависимости от результата.
Переписал просто async функции на них когда надоело в каждую атомарную функцию заново прокидывать контекст
Если бы можно было при этом делать yield* то было бы ещё проще
Ну короче что то типа саги, да, только без либ

Andrew
21.05.2017
17:54:33
интересный опыт.
Я просто постоянно работаю с сагой, поэтому в ноду решил запихать ‘co’ и везде писать yield. Плюс в mongoose примеры через yield

Никита
21.05.2017
18:27:31
Про зстд кто-нибудь слышал?
Только что наткнулся: https://github.com/redox-os/tfs/issues/40

Sasha
21.05.2017
19:58:48
как это возможно?
this.deleteTrade = (tradeID) => {
return new Promise((resolve, reject) => {
MongoClient.connect(this.url, (err, db) => {
if(err || db == null) {
reject('Failed to connect to DB. Try again later');
}
db.collection('trades', {}, (err, trades) => {
trades.remove({
_id: tradeID
}, (err, result) => {
if(err) {
reject(err);
}
resolve(result);
});
});
db.close();
});
});
}
выдает ругань на строчку db.collection('trades', {}, (err, trades) => {
вот такую:
TypeError: Cannot read property 'collection' of null

Никита
21.05.2017
20:05:36
режект молодец, а из функции ретурн кто будет делать?
режект не кидает исключения там, и у тебя остаток функции после режекта выполняется жеж