Skip to content

Instantly share code, notes, and snippets.

@hazeledmands
Created May 4, 2016 18:50
Show Gist options
  • Save hazeledmands/da4ac6d4d2d9bccb93c380aa7ce0fd1e to your computer and use it in GitHub Desktop.
Save hazeledmands/da4ac6d4d2d9bccb93c380aa7ce0fd1e to your computer and use it in GitHub Desktop.
Tests on bluebird disposers
const Promise = require('bluebird');
console.log('starting promise');
Promise.resolve()
.then(function () {
console.log('grabbing resource');
return Promise.using(getDisposer(), function () {
console.log('starting delay');
return Promise.delay(2000)
.then(function () {
console.log('ending delay');
});
})
.then(function () {
console.log('finished with resource');
});
})
.timeout(1000)
.then(function () {
console.log('done!');
})
.catch(function (err) {
console.log(err.stack);
});
function getDisposer () {
const resource = {};
console.log('getting disposer');
return Promise.resolve(resource)
.disposer(function () {
console.log('disposing!');
});
}
@hazeledmands
Copy link
Author

apps/pick-api ❯ node disposer-with-timeout.js
starting promise
grabbing resource
getting disposer
starting delay
TimeoutError: operation timed out
    at afterTimeout (/Users/maxedmands/Projects/ops-super/apps/pick-api/node_modules/bluebird/js/release/timers.js:45:19)
    at timeoutTimeout [as _onTimeout] (/Users/maxedmands/Projects/ops-super/apps/pick-api/node_modules/bluebird/js/release/timers.js:75:13)
    at Timer.listOnTimeout (timers.js:92:15)
ending delay
disposing!
finished with resource

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment