@JSlang

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

IsaacPearse
22.09.2018
19:15:44
аргументом функции является функция, которая и вызывается в этой строке
спс, конечно за ответ, только я как новичок не особо догоняю о чем это вообще((

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
Это не доказательство. Напиши юнит-тест на тестируемый код, после чего покажи его успешный прогон.

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

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
Он не знает как это работает, похоже.
И когда его отправляешь в чат для нубов, считает, что над ним издеваются.

Alpha
22.09.2018
20:21:34
И когда его отправляешь в чат для нубов, считает, что над ним издеваются.
Я просто пытаюсь сформулировать ответ. Вот с мангусом никогда не работал, но я увидел у него коллбек и вот это в документации

Так же, он явно не понимает зачем нужен await

Google
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 а процесс дальше идет!

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

Alpha
22.09.2018
20:44:43
savedaccount это обьект сохранненого ранее обьекта
Ты от функции saveAccount ничего не возвращаешь, разве нет?

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

Andrew
22.09.2018
20:45:27
Ты от функции saveAccount ничего не возвращаешь, разве нет?
пытаюсь вернуть айди сохраненного обьекта

Aista
22.09.2018
20:46:22
пытаюсь вернуть айди сохраненного обьекта
.save() не вернет ничего кроме undefined или Promise хоть что ты изнутри коллбэка там не возвращай

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
.save() не вернет ничего кроме undefined или Promise хоть что ты изнутри коллбэка там не возвращай
Да даже если это в сторону отставить, ретурн относится к внутренней функции, разве нет? У него же тип void, по-факту. Т.е. да, save выполнился и... Всё. Куда он и что будет возвращать?

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

Aista
22.09.2018
20:48:55
потому что он с return не работает?
.save() игнорирует твой return

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()

Страница 2169 из 2237