А еще у меня в юишке нормальные промисы с прогрессом ивентами и бросают исключение если нет ни одного обработчика, и можно чайны строить соединяя промисы и можно писать так
promise = new Promise
promise.status // pending
setTimeout =>
// а дальше делаем что нужно
promise.resolve(11)
promise.reject(11)
, 1000
return promise
Но разумеется можно и по быдлятски
new Promise(function(resolve, reject){})