7.3 Error handling

by dimitrs_papadimitriou

HTML

<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>

JavaScript

(async()=>{ // this is just because all awaits should be in async functions
        
 var mockClientRepository = ({
        getById: (id) =>
            new Promise((resolve, reject) => {
                setTimeout(() => {

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

                    if (client)
                        resolve(client)
                    else
                        reject("no client found")
                }, 1000)
            })
    })


    var mockEmployeeRepository = ({
        getById: (id) =>
            new Promise((resolve, reject) => {
                setTimeout(() => {
                    var employee = [{ id: 1, name: 'jim', age: 29 },
                    { id: 2, name: 'jane', age: 25 }]
                        .find(employee => employee.id === id);

                    if (employee)
                        resolve(employee)
                    else
                        reject("no employee found")

                }, 1000)
            })
    })

 
    {
        var assignedEmployee = async (clientId) => {
            try {
                var client = await mockClientRepository.getById(clientId);
                var employee = await mockEmployeeRepository.getById(client.employeeId);
                return employee.name
            } catch (error) {
                return error;
            }
        }

        var employeeName = await assignedEmployee(1);
        console.log(employeeName)
    }


    })()