1) про асинхронность -
https://developer.mozilla.org/en-US/docs/Web/JavaS... и дальше гуглить что не понятно
2) про реализацию в библиотеках фреймворках (в порядке простоты реализации и сложности в поддержке, не спроста есть такая штука как callback-hell):
- колбэки
- промисы (ангуляр использует их повсюду к примеру, они же есть в jquery)
- корутины (имеет смысл с трансляторами типа babel.js так как генераторы появились только в ES2015)