Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //////// Event loop test
- function eventLoopTest(config) {
- const { prefix, type, depth = 2 } = config;
- if (depth >= 0) {
- const callback = () => {
- process.nextTick(() => console.log(prefix + ": next tick #" + depth));
- Promise.resolve().then(() => console.log(prefix + ": promise #" + depth));
- setImmediate(() => console.log(prefix + ": immediate #" + depth));
- setTimeout(() => console.log(prefix + ": timeout #" + depth), 0);
- eventLoopTest({ prefix, type, depth: depth - 1 });
- };
- switch (type) {
- case 'promise': {
- Promise.resolve().then(callback);
- break;
- }
- case 'nextTick': {
- process.nextTick(callback);
- break;
- }
- }
- }
- }
- process.on('uncaughtException', err => {
- console.error('uncaught: ' + err.message);
- });
- // setImmediate(() => console.log('immediate'));
- // eventLoopTest({ prefix: 1, type: 'nextTick' });
- // process.nextTick(() => {
- // throw new Error;
- // });
- // eventLoopTest({ prefix: 2, type: 'promise' });
- ////////////////////// Promises handling
- process.on('unhandledRejection', (err, promise) => {
- console.log('handled', err);
- promise.catch(error => (console.log('lateCatch', error == err), error));
- });
- process.on('rejectionHandled', (promise) => {
- console.log('rejection', promise);
- });
- // Promise.reject(new Error('unhandled!'))
- // .catch((err) => console.log(err))
- ///////////////////// Promise chaining
- function onSuccess(a) {
- console.log('success: ' + a);
- return a + a;
- }
- function onFailedSuccess(a) {
- console.log('success: ' + a);
- const err = new Error(a);
- console.log('throw: ' + err.message);
- throw err;
- }
- function onFailure(err) {
- console.log('fail: ' + err.message);
- return err.message + err.message;
- }
- function onFailedFailure(err) {
- console.log('fail: ' + err.message);
- err.message += err.message;
- console.log('throw: ' + err.message);
- throw err;
- }
- // Promise.resolve(1)
- // .then(onSuccess)
- // .then(onSuccess)
- // .catch(onFailedFailure)
- // .then(onFailedSuccess)
- // .catch(onFailedFailure)
- // .catch(onFailedFailure)
- // .catch(onFailure)
- // .then(onSuccess);
Add Comment
Please, Sign In to add comment