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 ответов

5 просмотров

Пробовал

Но зачем, если в 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 возвращают, а из-за того, что объявлена переменная локально.

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

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

Всем привет. Ребят подскажите пожалуйста. Вопрос по дизасемблировани. Начну с начала. У меня есть скомпилированная программа на ГО (я разработчик) - в ней есть защита лицензии...
Zloy
11
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
9
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Или ты челендж хочешь?
Ilya Shvechikov
7
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Карта сайта