2.3 Callbacks Example

by dimitrs_papadimitriou

HTML

<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
<script src="https://unpkg.com/[email protected]/bundles/rxjs.umd.min.js"></script>

JavaScript

var mockClientRepository = ({
    getById: (id, onError, onFinished) =>

      setTimeout(() => {
        try {
          var client =
            [{ id: 1, name: 'rick', age: 29, employeeId: 1 },
            { id: 2, name: 'morty', age: 25, employeeId: 3 }]
              .find(client => client.id === id);

          onFinished(client)

        } catch (error) {
          onError(error)
        }

      }, 1000)

  })

  var mockEmployeeRepository = ({
    getById: (id, onError, onFinished) =>
      setTimeout(() => {
        try {

          var employee =
            [{ id: 1, name: 'jim', age: 29 },
            { id: 2, name: 'jane', age: 25 }]
              .find(employee => employee.id === id);

          onFinished(employee)

        } catch (error) {
          onError(error)
        }
      }, 1000)

  })

  var assignedEmployee = (clientId, onError, onFinished) => {
    mockClientRepository.getById(clientId,
      error => onError(`error retriving client:${error}`),
      client => {

        if (client) {
          mockEmployeeRepository.getById(client.employeeId,
            error => onError(`error retriving employee:${error}`),
            employee => {
              onFinished(employee)
            });
        }

      });
  }

  assignedEmployee(1, error => console.log(error), employee => console.log(employee))