Guest User

Untitled

a guest
Nov 14th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. //////// Event loop test
  2.  
  3. function eventLoopTest(config) {
  4. const { prefix, type, depth = 2 } = config;
  5.  
  6. if (depth >= 0) {
  7. const callback = () => {
  8. process.nextTick(() => console.log(prefix + ": next tick #" + depth));
  9. Promise.resolve().then(() => console.log(prefix + ": promise #" + depth));
  10. setImmediate(() => console.log(prefix + ": immediate #" + depth));
  11. setTimeout(() => console.log(prefix + ": timeout #" + depth), 0);
  12.  
  13. eventLoopTest({ prefix, type, depth: depth - 1 });
  14. };
  15. switch (type) {
  16. case 'promise': {
  17. Promise.resolve().then(callback);
  18. break;
  19. }
  20.  
  21. case 'nextTick': {
  22. process.nextTick(callback);
  23. break;
  24. }
  25. }
  26. }
  27. }
  28.  
  29. process.on('uncaughtException', err => {
  30. console.error('uncaught: ' + err.message);
  31. });
  32.  
  33. // setImmediate(() => console.log('immediate'));
  34. // eventLoopTest({ prefix: 1, type: 'nextTick' });
  35. // process.nextTick(() => {
  36. // throw new Error;
  37. // });
  38. // eventLoopTest({ prefix: 2, type: 'promise' });
  39.  
  40. ////////////////////// Promises handling
  41.  
  42. process.on('unhandledRejection', (err, promise) => {
  43. console.log('handled', err);
  44. promise.catch(error => (console.log('lateCatch', error == err), error));
  45. });
  46. process.on('rejectionHandled', (promise) => {
  47. console.log('rejection', promise);
  48. });
  49.  
  50. // Promise.reject(new Error('unhandled!'))
  51. // .catch((err) => console.log(err))
  52.  
  53. ///////////////////// Promise chaining
  54.  
  55. function onSuccess(a) {
  56. console.log('success: ' + a);
  57. return a + a;
  58. }
  59.  
  60. function onFailedSuccess(a) {
  61. console.log('success: ' + a);
  62. const err = new Error(a);
  63. console.log('throw: ' + err.message);
  64. throw err;
  65. }
  66.  
  67. function onFailure(err) {
  68. console.log('fail: ' + err.message);
  69. return err.message + err.message;
  70. }
  71.  
  72. function onFailedFailure(err) {
  73. console.log('fail: ' + err.message);
  74. err.message += err.message;
  75. console.log('throw: ' + err.message);
  76. throw err;
  77. }
  78.  
  79. // Promise.resolve(1)
  80. // .then(onSuccess)
  81. // .then(onSuccess)
  82. // .catch(onFailedFailure)
  83. // .then(onFailedSuccess)
  84. // .catch(onFailedFailure)
  85. // .catch(onFailedFailure)
  86. // .catch(onFailure)
  87. // .then(onSuccess);
Add Comment
Please, Sign In to add comment