170 похожих чатов

Кто нибудь пробовал логику работы с ошибками в Go засунуть

в JavaScript?

то есть:

export async function createSomeObject(id: string, data: DataInterface) {
// ...
if (response.status != 200) {
return {response: undefined, err: "status code is not 200"}
}
return {response: response, err: undefined}
}

const {resp, err} = createSomeObject()
if (!isUndefined(err)) {
// work with err
}

33 ответов

17 просмотров

Пробовал

Но зачем, если в js для этого есть try catch

Artur-Karapetov Автор вопроса
Artur-Karapetov Автор вопроса
Stanislav Sagan
Но зачем, если в js для этого есть try catch

потому что система работы с ошибками в Go интереснее чем try catch 🙂

Также оборачивал, но в php. Первый элемент только был error, второй data (или result)

Artur Karapetov
логичней наоборот

Почему? Сразу же error и проверяешь первым. Бтв, в js есть эти всякие null и undefined, их должно хватать без передачи массивами. Можно по подробнее?

Artur-Karapetov Автор вопроса
Paul Okhlopkov
Почему? Сразу же error и проверяешь первым. Бтв, в...

читать проще file, err := getFile() чем err, file := getFile() приходится туды сюды

Artur Karapetov
потому что система работы с ошибками в Go интересн...

Если уже на то пошло, самое удачное прокалывание ошибок наверх в расте. не холивара ради. Просто там для этого есть знак вопроса вместо if err != nil return nil, err

Artur Karapetov
читать проще file, err := getFile() чем err, file...

Птс, вы про го, а в php и js вы же так не можете. Или я неверно понял?

Artur-Karapetov Автор вопроса
Stanislav Sagan
Если уже на то пошло, самое удачное прокалывание о...

не видел раст в глаза даже. поэтому не могу сказать. в свифте и в тайпскрипте есть знак вопроса - говорящий об опциональности переменной - так что можно как в расте, если я правильно понял

Artur-Karapetov Автор вопроса
Paul Okhlopkov
Птс, вы про го, а в php и js вы же так не можете. ...

я про реализацию такого подхода (из го) в жс и да, в жс так можно. так везде можно ) я спрашиваю про целесообразность, читаемость, поддерижваемость если кто-то так делал в проекте

Paul Okhlopkov
Птс, вы про го, а в php и js вы же так не можете. ...

Там есть деструктуризация как массивов [data, err] = ... Так и деструктуризация объектов в js, так что все можно

Artur Karapetov
я про реализацию такого подхода (из го) в жс и да...

А, сообразил, вы деструктуризацией делаете. Умно.

Artur-Karapetov Автор вопроса
Paul Okhlopkov
А, сообразил, вы деструктуризацией делаете. Умно.

насчет умно - хз но да, деструктуризация

Stanislav Sagan
Там есть деструктуризация как массивов [data, err]...

Да, спасибо, сообразил. Но в php действительно без разницы вроде. Но я пока не понял чем стандартная проверка через нулы и андефайнды плоха? Чисто от любви к go перегружать код? Js и так не слава богу язык, а тут такое.

Artur Karapetov
потому что система работы с ошибками в Go интересн...

Но лучше пользуйся try/catch и .tnen/.catch если оно уже есть в языке и общепринято

Artur-Karapetov Автор вопроса
Artur Karapetov
поэтому и спрашиваю про опыт )

Если ты не словить какую-то ошибку у тебя упадет все программа

Строго говоря она не интереснее. Но позволяет или уж хоронить ошибки сразу (у меня, например, куча мест без анализа error), или обработать их как можно быстрее, без протагивания наверх и кладбища на верхнем уровне UPDATE: ПРИНУЖДАЕТ

Artur-Karapetov Автор вопроса

речь про клиентский js

Artur Karapetov
речь про клиентский js

Когда я сказал такое своему сеньору, мне дали по голове, но сказали, что то вроде "фиг с ним, потом перепилим".

Artur Karapetov
такое это о чем?

Что пофигу же, что на клиенте, мы же не свой бекенд горбатим

Artur-Karapetov Автор вопроса
Paul Okhlopkov
Что пофигу же, что на клиенте, мы же не свой бекен...

пофигу что именно? что каждый раз деструкт и раскрывание?

Artur Karapetov
пофигу что именно? что каждый раз деструкт и раскр...

Ну грубо говоря да. Просто со временем привыкаешь к оптимизации кода и везде ее ищешь в итоге. Фулстек сеньор.

Artur-Karapetov Автор вопроса
Paul Okhlopkov
Ну грубо говоря да. Просто со временем привыкаешь...

а он прям показал бенчи этого подхода? найти оптимизацию и забенчить ее - это 2 разные вещи

Artur Karapetov
а он прям показал бенчи этого подхода? найти опти...

Ну вот тут не могу сказать. Последний раз я видел сеньора с бенчами на работе - никогда.

Artur Karapetov
поэтому и спрашиваю про опыт )

в Lua к примеру для обработки ошибок, есть pcall Но статус об ошибки идет первым элементом: err, result = pcall (func_test,func_arg)

Gaisin Vadim
в Lua к примеру для обработки ошибок, есть pcall ...

Ну луа-то другое. Если я правильно помню, то второе значение строго говоря может не возвращаться, a в local e,, x = pcall(...) x будет равен nil не из-за того, что nil возвращают, а из-за того, что объявлена переменная локально.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта