event.js 853 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // wrapped by build app
  2. define("dojox/lang/async/event", ["dijit","dojo","dojox"], function(dijit,dojo,dojox){
  3. dojo.provide("dojox.lang.async.event");
  4. // Source of Deferred for events
  5. (function(){
  6. var d = dojo, event = dojox.lang.async.event;
  7. event.from = function(src, name){
  8. return function(){
  9. var h, cancel = function(){
  10. if(h){
  11. d.disconnect(h);
  12. h = null;
  13. }
  14. },
  15. x = new d.Deferred(cancel);
  16. h = d.connect(src, name, function(evt){
  17. cancel();
  18. x.callback(evt);
  19. });
  20. return x;
  21. };
  22. };
  23. event.failOn = function(src, name){
  24. return function(){
  25. var h, cancel = function(){
  26. if(h){
  27. d.disconnect(h);
  28. h = null;
  29. }
  30. },
  31. x = new d.Deferred(cancel);
  32. h = d.connect(src, name, function(evt){
  33. cancel();
  34. x.errback(new Error(evt));
  35. });
  36. return x;
  37. };
  38. };
  39. })();
  40. });