Actually, there seems to be a subtle difference in the way js promises are constructed.
Instead of:
`new Promise(onFulfilled, onRejected)`
It's actually:
`new Promise(function(onFulfilled, onRejected) { ... use the fulfil or rejection callbacks as necessary })`

So I'll update this when we're actually using the promises.