Guest User

Untitled

a guest
Jul 19th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. // Deferred
  2.  
  3. (
  4. // Value is not available yet, so error
  5. d = Deferred();
  6. d.value.postln;
  7. )
  8.  
  9. (
  10. // Value is available
  11. d = Deferred();
  12. d.value = "foo";
  13. d.value.postln;
  14. )
  15.  
  16. (
  17. // Operation resulted in an error, so rethrow when accessing value;
  18. d = Deferred();
  19. d.error = Error("Something went wrong");
  20. d.value.postln;
  21. )
  22.  
  23.  
  24. (
  25. // Accessing Error directly: no throw
  26. d = Deferred();
  27. d.error = Error("Something went wrong");
  28. d.error.postln;
  29. )
  30.  
  31.  
  32.  
  33. (
  34. d = Deferred();
  35. fork {
  36. var value = d.wait();
  37. value.postln;
  38. };
  39. fork {
  40. 1.wait;
  41. d.value = "Done";
  42. }
  43. )
  44.  
  45.  
  46. (
  47. // Error is thrown during wait call
  48. d = Deferred();
  49. fork {
  50. var value = d.wait();
  51. value.postln;
  52. };
  53. fork {
  54. 1.wait;
  55. d.error = Error("oops")
  56. }
  57. )
  58.  
  59.  
  60.  
  61. (
  62. d = Deferred();
  63. fork {
  64. d.then({
  65. |value|
  66. value.postln;
  67. })
  68. };
  69. fork {
  70. 1.wait;
  71. d.value = "Function style";
  72. }
  73. )
  74.  
  75. switch
  76. (
  77. d = Deferred();
  78. fork {
  79. d.then({
  80. |value|
  81. value.postln;
  82. })
  83. };
  84. fork {
  85. 1.wait;
  86. d.error = Error("Error style");
  87. }
  88. )
  89.  
  90.  
  91. (
  92. d = Deferred();
  93. fork {
  94. d.then({
  95. |value|
  96. value.postln;
  97. }, {
  98. |error|
  99. "Handled: %".format(error).postln;
  100. })
  101. };
  102. fork {
  103. 1.wait;
  104. d.error = Error("Error style");
  105. }
  106. )
  107.  
  108.  
  109.  
  110. (
  111. d = Deferred();
  112. fork {
  113. d.then({
  114. |value|
  115. value.postln;
  116. }, {
  117. |error|
  118. "Handled: %".format(error).postln;
  119. })
  120. };
  121. fork {
  122. 1.wait;
  123. d.error = Error("Error style");
  124. }
  125. )
Add Comment
Please, Sign In to add comment