module.exports = function(fn, data){ var my_cb, my_res data.success = function(res){ my_res = res if (my_cb) { my_cb(res) } } data.error = function(res){ console.log('error!') console.log(res) } fn(data) var promise = { then: function(cb){ if (my_res) cb(my_res) else my_cb = cb } } return promise }