You can clone with
HTTPS or Subversion.
There is a bug with the postMessage code that I've not been able to figure out yet.
I would recommend you using Promise to implement the deferred/async stuff because developers already know the pattern.
Please don't introduce your own framework to handle that.
Contributions welcome! I'm no longer actively working on this.