4.3 Promisify Callback code

https://github.com/eu81273/jsfiddle-console

by dimitrs_papadimitriou

HTML

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

JavaScript

var clients = [{ id: 1, name: 'jim' }, { id: 2, name: 'jane' }]

    var clientRepository = ({
        getById: (id, error, onFinishedSearch) => {
            try {
                setTimeout(() => {
                    var client = clients.find(c => c.id === id);
                    onFinishedSearch(client);
                }, 1000);
            } catch (e) {
                error(e)
            }

        }
    })

    var promiseAdapter = repository =>
        ({
            getById: (id) => {
                return new Promise((resolve, reject) => repository.getById(id, reject, resolve))
            }
        })




    promiseAdapter(clientRepository)
        .getById(1)
        .then(client => {
            console.log(client)
        });