LINUX.ORG.RU

Разматываю коллбэки. Я страдать теперь всю жизнь буду, или через пару лет легко будет???

Будешь страдать с легкостью и задором.

Kuzy ★★★
()

а причем тут javascript? человек вообще плохо работает с асинхронностью или параллелизмом в голове, поэтому писать надо понятнее.

umren ★★★★★
()

Напиши побольше знаков вопроса.

anonymous
()

promise, async, грамотный код и не надо ничего разматывать

Black_Roland ★★★★
()

даже на обезьянем C# асинхронный код с колбеками выглядит как говно

будешь страдать, особенно дебажа

unt1tled ★★★★
()
Ответ на: комментарий от ados

Я тебя умоляю. Я дебажу чужие костыли для аплоада ajax'ом файлов с андроида. Это ппц. Нет, это ППЦ.

Shadow ★★★★★
() автор топика
Ответ на: комментарий от umren

Нет, это ППЦ. ППЦ в избирательной реализации фич в webkitе андройда, ППЦ в использовании более одного колбэка в функции, которая из бинарного массива возвращает строку, ППЦ в javascript в принципе. Я в шоке. В Netscape 3.01 такого не было.

Shadow ★★★★★
() автор топика
Ответ на: комментарий от Shadow

разработка это вообще страдание и слезы за деньги, так что крепись

umren ★★★★★
()

На специальности разработчика (не важно какого, может даже просто чайники будешь разрабатывать, без программирования) ты будешь всё время страдать. Это особенность любой умственной работы, когда надо хорошо напрягать мозг. Но самая большая радость в том, что даже уйдя с работы домой голова у тебя будет думать (если конечно дома не семеро на лавке, которых кормить надо и которые не дадут тебе подумать) о том, как что-то сделать/доделать, т.е. работа будет доставать тебя даже дома. Если тебе это не нравится, то надо было идти в дворники.

peregrine ★★★★★
()

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

$scope.$on('$typeControllerInitialized', function() {
        $scope.$broadcast('$initializationCompleted');

        $http.get($rootScope.base + 'orders/historylist?ticketId=' + $scope.ticket.id).success(wrapResponse(function(data) {
            $scope.historyList = data.historylist.map(function(li) {
                li.created = fromLocalTime(li.createdTimeStamp).format('DD-MM-YYYY HH:mm');
                li.fromFms = li.fmsReturnDatePlan ? fromLocalDate(li.fmsReturnDatePlan).format('DD-MM-YYYY') : '---';
                return li;
            });
        })).error(alertServerError);

        $http({
            method: 'GET',
            url: $rootScope.base + 'orders/statusnext',
            params: {
                status: $rootScope.statuses[$scope.ticket.ticketStatusId].code,
                visaType: $scope.serviceType.toUpperCase()
            }
        }).success(wrapResponse(function(data) {
            $scope.nextStatuses = data.statusList;
        })).error(alertServerError);

        $http({
            method: 'GET',
            url: $rootScope.base + 'comments/ticket_related',
            params: {ticketId: $scope.ticket.id}
        }).success(wrapResponse(function(data) {
            $scope.ticketComments = data.comments.map(function(c) {c.at = fromLocalTime(c.leftAt).format('DD-MM-YYYY hh:mm'); return c;});

            //when all comments retrieved - marking all for ticket as read
            $http({
                method: 'POST',
                url: $rootScope.base + 'comments/mark_read',
                params: {ticketId: $scope.ticket.id}
            }).success(wrapResponse(function() {
                //do nothing here
            })).error(alertServerError);
        })).error(alertServerError);
    });

Так что все дело в привычке.

Nagwal ★★★★
()
Ответ на: комментарий от peregrine

Странно, когда я разрабатываю на C# или Python, я разрабатываю, а не страдаю. PHP и JavaScript - вызывают боль. Ну и на Perl я страдаю фигнёй ;)

Shadow ★★★★★
() автор топика
Ответ на: комментарий от Shadow

Да вроде ничего особо ужасного я там не вижу. Не сказать что прям с первого с первого взгляда, но распарсить можно вроде.

Nagwal ★★★★
()
Ответ на: комментарий от Shadow
<a href="#" id="blobButton">

Только <button>, только хардкор!

Deleted
()
Ответ на: комментарий от Shadow
        // android
        var oBuilder = new BlobBuilder();
        var aFileParts = ['{ "text": "test" }'];
        oBuilder.append(aFileParts[0]);
        var blob = oBuilder.getBlob("text\/plain"); // the blob
        
    } else {
        // everyone else

everyone

every

Ясно.

anonymous
()
Ответ на: комментарий от Deleted

Ну, это все таки кусок реального проекта, а не результат соревнований по говнокоду ;)

Nagwal ★★★★
()
Ответ на: комментарий от Nagwal

уже спокойно и без слез могу читать

А что там такого страшного? Вполне себе дубовый, прямолинейный код. Оформить конечно, можно было и получше.

no-such-file ★★★★★
()

Всем спасибо, я не осилил симуляцию блоба через бинарный массив в javascript, сделал хорошее кросс-браузерное решение: никаких файлов в POST, загружаю base64 текст в поле hidden. В 10 раз меньше кода, работает везде.

Shadow ★★★★★
() автор топика
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от Nagwal

Мне просто это нужно переделать и вставить в нормальные функции, чтоб работало. А ХЗ зачем там столько коллбэков - может без них переменные какие-то не обновляются и ничего не работает. Вот это больше всего и напрягает, что шаманство лютое.

Shadow ★★★★★
() автор топика
Ответ на: комментарий от no-such-file

А что там такого страшного? Вполне себе дубовый, прямолинейный код.

Ну, он все таки не прямолинейный, от слова совсем. Коллбэки таки исполняются асинхронно, в произвольном порядке.

Оформить конечно, можно было и получше.

Времени нет - рефакторить и оформлять все это по нормальному. Несколько раз пытался заказчику объяснить, что он с такими сроками с поддержкой потом наебется (а я это поддерживать не буду, ну либо за _очень_ большие деньги). Не слушают.

Nagwal ★★★★
()
Ответ на: комментарий от Shadow

В голове и глазах

Здесь была шутка про то где у тебя находится голова.

no-such-file ★★★★★
()
Ответ на: комментарий от Nagwal

таки не прямолинейный

Прямолинейный в смысле дубовый, простой для понимания, без изысков и кульбитов.

no-such-file ★★★★★
()
Ответ на: комментарий от Shadow

Самое страшное там это дублирование кода, и возможно не крссбраузерное создание ajax объекта, правда неуверен актуально это до сих пор или нет. Коллбэки самые обыкновенный, топорнее некуда.

TDrive ★★★★★
()
Ответ на: комментарий от Shadow

Если ты действительно разрабатываешь (пашешь в полную силу), то ты будешь страдать в любом случае. Если быдлокодишь шалтай-болтай, абы что-то сделать (пусть даже видимость работы), то да, думать не придётся.

peregrine ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.