https://mamchenkov.net/wordpress/2014/08/14/q-tool-for-making-and-composing-asynchronous-promises-in-javascript/
q - tool for making and composing asynchronous promises in JavaScript