Как написать такую функцию на javascript?
это асинхронный код, и работать с ним нужно как с асинхронным кодом. в вашем случае нужно передавать еще callback функцию и в ней уже делать что то, или другими способами обработки асинхронного кода ( promise  например)
Обещания
есть так же просто отдельные реализации а так же в последних билдах хрома появилась нативная реализация.