Как правильно сделать асинхронный вроппер для синхронной библиотеки?
Есть чужая Javascript-библиотека. Она синхронная. Т.е., вызвав её функцию a() нужно ждать (иногда долго) её возврата. Хочется сделать над этой библиотекой асинхронный вроппер. Т.е. чтобы я вызвал метод wrapper.a(func), который сразу же вернулся, где-то параллельно запустив функцию a(). Потом, когда а() выполниться — вызовется мой обработчик func.
Как это сделать наиболее просто\правильно? Пока в голову приходят только таймеры, но я вообще новичок в Javascript — может быть есть что умнее?