
IsaacPearse
22.09.2018
19:08:58
Ребят, объясните следующий пример...
var func = function(callback) {
var name = 'String';
callback(name);
};
что делает в теле функции это "callback(name);" - какова его функция?

Roman
22.09.2018
19:13:23

IsaacPearse
22.09.2018
19:15:44

Roman
22.09.2018
19:16:14

Google

Alpha
22.09.2018
19:58:32
Кстати, юнит-тесты очень сильно апают знание спеки.

Andrew
22.09.2018
19:59:45
в чем проблема может быть? пытаюсь сохранить в бд обьект с помощтю mongoose и сразу получить айди обьекта, в итоге получаю undefined.
let accountId = await saveAccount(data, ip);
...
await account.save(function (err, savedAccount) {
if (err) console.log(err);
else return savedAccount._id;
});
ошибок нет, обьект сохраняется

Alpha
22.09.2018
20:01:24
Это не доказательство. Напиши юнит-тест на тестируемый код, после чего покажи его успешный прогон.

Andrew
22.09.2018
20:03:08

Nikolay
22.09.2018
20:04:21
@al_nerd Помнишь, утром про асинк-эвейты? :)
Ты неправильно его юзаешь.

Alpha
22.09.2018
20:05:48
@al_nerd Помнишь, утром про асинк-эвейты? :)
Я ему поэтому и даю совет. Пока напишет этот юнит-тест — поймёт где проебался.
Кстати, перехват модулей через proxyquire можно запилить. Оно позволяет прям кошерный мок делать, а не высокоуровневый как sinon

Nikolay
22.09.2018
20:06:29
proxyquire не нужен, есть jest

Alpha
22.09.2018
20:07:25
proxyquire не нужен, есть jest
Разве он не мокает как sinon, после загрузки модуля? У меня просто в конструкторе одной зависимости чекалась переменная окружения

Nikolay
22.09.2018
20:08:45
А как это может тест зааффектить?

Google

Alpha
22.09.2018
20:09:07

Nikolay
22.09.2018
20:09:12
Я не буду говорить, что это херово, но видимо модуль не твой :)

Alpha
22.09.2018
20:09:19
Т.е. мне надо блокировать загрузку модуля.
Ну почему, мой... Но я его немножечко спиздил, потому что автор оригинального кода не обновлял его три года, а API уже поменялось

Nikolay
22.09.2018
20:10:46
Ну это неважно. Если jest.mock идёт раньше, чем реквайры твоих модулей, то он его и не должен загрузить.

Alpha
22.09.2018
20:11:18
Хмм... Ну я через прокси по-итогу сделал. Хотя надо будет чекнуть.
@andr3w Вопрос на засыпку: какой тип возвращает save()? Почитай документацию к mongoosejs

Andrew
22.09.2018
20:16:54

Nikolay
22.09.2018
20:17:26

Alpha
22.09.2018
20:17:45

Andrew
22.09.2018
20:18:17

Nikolay
22.09.2018
20:18:21

Alpha
22.09.2018
20:19:11
Ещё бы скрин найти, лол.

Andrew
22.09.2018
20:19:45
https://mongoosejs.com/docs/api.html
https://mongoosejs.com/docs/models.html
вот отсюда попробовал все примеры, перебрал разные варианты и также со stackoverflow, ничего не получилось

Alpha
22.09.2018
20:20:00

Nikolay
22.09.2018
20:20:33

Andrew
22.09.2018
20:21:19

Alpha
22.09.2018
20:21:34
Так же, он явно не понимает зачем нужен await

Google

Nikolay
22.09.2018
20:21:58

Andrew
22.09.2018
20:22:47

Nikolay
22.09.2018
20:22:59
https://mongoosejs.com/docs/api.html#document_Document-save
Тыц
Читаем. Что написано там, где "Returns: "?

Andrew
22.09.2018
20:25:31
udefinied если используется с колбеком, либо промис

Nikolay
22.09.2018
20:25:42
Верно.
У тебя какой вариант из двух?

Andrew
22.09.2018
20:26:00
первый

Nikolay
22.09.2018
20:26:08
Значит что вернется?

Andrew
22.09.2018
20:26:09
без эвейта второй

Nikolay
22.09.2018
20:26:25
Покажи второй

Andrew
22.09.2018
20:28:00

Nikolay
22.09.2018
20:28:43
Код покажи! Что мне консоль твоя?
И почему ты все-таки не хочешь эти вопросы задать в нубском чатике?

Andrew
22.09.2018
20:31:48
await account.save........

Nikolay
22.09.2018
20:37:33
Не мог бы ты показать код целиком? Вместе с реализацией функции saveAccount.

Andrew
22.09.2018
20:38:58

Google

Andrew
22.09.2018
20:39:22
let a = saveAccount(data, ip)
console.log(a);

Admin
ERROR: S client not available

Nikolay
22.09.2018
20:39:39
Спасибо.
Давай еще раз доку почитаем
Что написано после Returns?

Alpha
22.09.2018
20:40:12
Только по JS

Andrew
22.09.2018
20:41:01
без await резльтат аналогичный

Nikolay
22.09.2018
20:41:53
Что ты в save передаешь?

[Anonymous]
22.09.2018
20:41:58
всем привет

Nikolay
22.09.2018
20:41:59
И что ты ожидаешь?

Andrew
22.09.2018
20:42:42
ожидаю айди сохраненного обьекта

Alpha
22.09.2018
20:43:09
Не, может я что-то не понимаю, но ты присваиваешь функцию savedAccount, хочешь получить какие-то результаты её выполнения, но при этом не возвращаешь результат, банально

[Anonymous]
22.09.2018
20:43:29
$.post('/join_bots.php',{bot:bot,all_string:all_string} как остановить такой запрос?
пробовал только через xhr там пишет в консоле canceled а процесс дальше идет!

Andrew
22.09.2018
20:43:57

Eugene
22.09.2018
20:44:10
Продвинутого пользователя Linux отличает не только глубокое понимание работы системы, но и умение эффектно оседлать её в терминале.
Предлагаем вам подборку команд, знание которых здорово поможет в работе с детищем Линуса Торвальдса:
https://tproger.ru/articles/useful-linux-commands/

Alpha
22.09.2018
20:44:43

Aista
22.09.2018
20:45:23
хороший чат и вопросы интересные

Andrew
22.09.2018
20:45:27

Aista
22.09.2018
20:46:22

Andrew
22.09.2018
20:46:54

Google

Andrew
22.09.2018
20:47:52
account.save(function (err, savedAccount) {
console.log(savedAccount._id)
});
вот так у меня все что нужно отображается
я не знал что return так не работает

Alpha
22.09.2018
20:48:09

Andrew
22.09.2018
20:48:43
я не знал, спасибо, а как тогда вернуть результат обратно?

Aista
22.09.2018
20:48:55

Andrew
22.09.2018
20:50:14
я не знал, спасибо, а как тогда вернуть результат обратно?
@Quentaro

Nikolay
22.09.2018
21:03:49
Не жди, что тут за тебя всё разжуют.

Andrew
22.09.2018
21:04:20

Alpha
22.09.2018
21:05:41
return account.save()