Alpha
@al_nerd Помнишь, утром про асинк-эвейты? :)
Я ему поэтому и даю совет. Пока напишет этот юнит-тест — поймёт где проебался. Кстати, перехват модулей через proxyquire можно запилить. Оно позволяет прям кошерный мок делать, а не высокоуровневый как sinon
Nikolay
proxyquire не нужен, есть jest
Alpha
proxyquire не нужен, есть jest
Разве он не мокает как sinon, после загрузки модуля? У меня просто в конструкторе одной зависимости чекалась переменная окружения
Nikolay
А как это может тест зааффектить?
Alpha
А как это может тест зааффектить?
Исключение бросить, мол переменная окружения не установлена
Nikolay
Я не буду говорить, что это херово, но видимо модуль не твой :)
Alpha
Т.е. мне надо блокировать загрузку модуля.
Alpha
Ну почему, мой... Но я его немножечко спиздил, потому что автор оригинального кода не обновлял его три года, а API уже поменялось
Nikolay
Ну это неважно. Если jest.mock идёт раньше, чем реквайры твоих модулей, то он его и не должен загрузить.
Alpha
Хмм... Ну я через прокси по-итогу сделал. Хотя надо будет чекнуть.
Alpha
@andr3w Вопрос на засыпку: какой тип возвращает save()? Почитай документацию к mongoosejs
Alpha
промис он возвращает
Окей. Ты дождался получения этого промиса, и где его результат?
Andrew
Nikolay
Окей. Ты дождался получения этого промиса, и где его результат?
В его случае вернется ровно то, что и написано в консоли на скрине.
Alpha
Ещё бы скрин найти, лол.
Andrew
https://mongoosejs.com/docs/api.html https://mongoosejs.com/docs/models.html вот отсюда попробовал все примеры, перебрал разные варианты и также со stackoverflow, ничего не получилось
Nikolay
Он не знает как это работает, похоже.
И когда его отправляешь в чат для нубов, считает, что над ним издеваются.
Alpha
И когда его отправляешь в чат для нубов, считает, что над ним издеваются.
Я просто пытаюсь сформулировать ответ. Вот с мангусом никогда не работал, но я увидел у него коллбек и вот это в документации
Alpha
Так же, он явно не понимает зачем нужен await
Alpha
Nikolay
https://mongoosejs.com/docs/api.html#document_Document-save
Nikolay
Тыц
Nikolay
Читаем. Что написано там, где "Returns: "?
Andrew
udefinied если используется с колбеком, либо промис
Nikolay
Верно.
Nikolay
У тебя какой вариант из двух?
Andrew
первый
Nikolay
Значит что вернется?
Andrew
без эвейта второй
Nikolay
Покажи второй
Andrew
Nikolay
Код покажи! Что мне консоль твоя?
Nikolay
И почему ты все-таки не хочешь эти вопросы задать в нубском чатике?
Andrew
await account.save........
Nikolay
Не мог бы ты показать код целиком? Вместе с реализацией функции saveAccount.
Andrew
Andrew
let a = saveAccount(data, ip) console.log(a);
Nikolay
Спасибо.
Nikolay
Давай еще раз доку почитаем
Nikolay
Что написано после Returns?
Alpha
Только по JS
Andrew
без await резльтат аналогичный
Nikolay
Что ты в save передаешь?
Anonymous
всем привет
Nikolay
И что ты ожидаешь?
Andrew
ожидаю айди сохраненного обьекта
Alpha
Не, может я что-то не понимаю, но ты присваиваешь функцию savedAccount, хочешь получить какие-то результаты её выполнения, но при этом не возвращаешь результат, банально
Anonymous
$.post('/join_bots.php',{bot:bot,all_string:all_string} как остановить такой запрос? пробовал только через xhr там пишет в консоле canceled а процесс дальше идет!
Eugene
Продвинутого пользователя Linux отличает не только глубокое понимание работы системы, но и умение эффектно оседлать её в терминале. Предлагаем вам подборку команд, знание которых здорово поможет в работе с детищем Линуса Торвальдса: https://tproger.ru/articles/useful-linux-commands/
Alpha
savedaccount это обьект сохранненого ранее обьекта
Ты от функции saveAccount ничего не возвращаешь, разве нет?
Aista
хороший чат и вопросы интересные
Andrew
Ты от функции saveAccount ничего не возвращаешь, разве нет?
пытаюсь вернуть айди сохраненного обьекта
Aista
пытаюсь вернуть айди сохраненного обьекта
.save() не вернет ничего кроме undefined или Promise хоть что ты изнутри коллбэка там не возвращай
Andrew
account.save(function (err, savedAccount) { console.log(savedAccount._id) }); вот так у меня все что нужно отображается
Andrew
я не знал что return так не работает
Alpha
.save() не вернет ничего кроме undefined или Promise хоть что ты изнутри коллбэка там не возвращай
Да даже если это в сторону отставить, ретурн относится к внутренней функции, разве нет? У него же тип void, по-факту. Т.е. да, save выполнился и... Всё. Куда он и что будет возвращать?
Andrew
я не знал, спасибо, а как тогда вернуть результат обратно?
Aista
потому что он с return не работает?
.save() игнорирует твой return
Andrew
я не знал, спасибо, а как тогда вернуть результат обратно?
Andrew
@Quentaro
Nikolay
я не знал, спасибо, а как тогда вернуть результат обратно?
Почему ты не хочешь читать доку? Там пример есть!
Nikolay
Не жди, что тут за тебя всё разжуют.
Andrew
Почему ты не хочешь читать доку? Там пример есть!
нету там примеров, как из одной функции вернуть в другую результат коллбека
Alpha
return account.save()
Alpha
/thread
Nikolay
@andr3w и совет: тебе не нужны никакие async/await пока ты не выучишь основы языка, и в частности простейшие конструкции для работы с асинхронным кодом.
Andrew
return account.save()
а как потом оттуда получить данные?
Alpha
Nikolay
а как потом оттуда получить данные?
А это что у тебя вообще? Курсовая, домашка или что?