I am putting together a couple code samples for prospective employers and would love some feedback. I am still pretty junior so I am not sure what constitutes a good code sample and the do's and dont's.The code sample shows both the original version of the code which is currently in production (at my previous company), and a refactored version, which is not in production and untested.// This code is part of a piece of functionality I wrote in which double-booking for reservations is handled// on the front-end. There is a series of modals that fire to guide a user through the process and gives// options to override a previous reservation, keep it, warns of any fee's, and proceeds to rebook if a user overrides.// I used nested promises to manage the asynchronicity issues and prevent the modals from firing at the same time, // and to make sure they were firing in the proper order. Just below this you will find a recently refactored // version of this code (not in production) in which I separated the promises, and flattened the chain - making it // more readable, allowing for better error handling (if needed), and improving manageability. // ----------------- original (in production) ----------------------------------------- //BookingHandler.handlePromise(Booking.book()).catch(function BookingHandlerReject(data) {    if (data.response.status === 412) {        ChangeCancel.dblBookingFlow = true;        //first promise        ChangeCancel.userReservations().then(function(userReservations) {            var reservations = userReservations.reservations;             var reservationId = data.response.data.specs.reservation_id;            var venueName = data.response.data.venue.name;            //second promise            ChangeCancel.alertExistingReservation(venueName, reservationId, reservations).then(function() {                ChangeCancel.rebook = true;                 //third promise                ChangeCancel.cancel().then(function() {                    if (ChangeCancel.skipSecondModal) {                         book();                        ChangeCancel.dblBookingFlow = false;                        ChangeCancel.skipSecondModal = false;                    } else if (!ChangeCancel.inChangeFlow) {                         if (ChangeCancel.continueWithRebooking) {                            book();                            ChangeCancel.isReplacingReservation = false;                            ChangeCancel.dblBookingFlow = false;                            ChangeCancel.skipSecondModal = false;                        }                    }                });            });         });             } else {        thisCtrl.messages.push('There was a problem while trying to book this reservation.');        thisCtrl.messages.push(data.response.data.message);    }});// ----------------- refactored (not in production) ----------------------------------------- //BookingHandler.handlePromise(Booking.book()).catch(function BookingHandlerReject(data) {        if(data.response.status === 412) {        var alertConflictingReservation,             getUserReservations,            overrideConflictingReservation;         ChangeCancel.dblBookingFlow = true;        getUserReservations = function() {            return ChangeCancel.userReservations().then(function(reservationsData){                this.reservations = reservationsData;                this.conflictingReservationId =  data.response.data.specs.reservation_id;                this.conflictingVenueName = data.response.data.venue.name;                return reservations;            }, function(error){ $log.error(error); });        };         alertConflictingReservation = function() {            ChangeCancel.rebook = true;            return ChangeCancel.alertExistingReservation(this.conflictingVenueName, this.conflictingReservationId, this.reservations).then(function(alertData){                return alertData;            }, function(error){ $log.error(error); });        };        overrideConflictingReservation = function() {            return ChangeCancel.cancel().then(function(overrideData) {                  if (ChangeCancel.skipSecondModal) {                     book();                    ChangeCancel.dblBookingFlow = false;                    ChangeCancel.skipSecondModal = false;                                   } else if (!ChangeCancel.inChangeFlow) {                     if (ChangeCancel.continueWithRebooking) {                        book();                        ChangeCancel.isReplacingReservation = false;                    }                }                return overrideData;            }, function(error){ $log.error(error); });        };         //call promise chain        getUserReservations()        .then(alertConflictingReservation)        .then(overrideConflictingReservation);    } else {        thisCtrl.messages.push('There was a problem while trying to book this reservation.');        thisCtrl.messages.push(data.response.data.message);         }});
Reservation booking code samples
javascript;comparative review;angular.js;promise