Guest User

Untitled

a guest
Aug 15th, 2015
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var async = {
  2.  
  3.     error: function (error) {
  4.         return {
  5.             run: function (callback) {
  6.                 callback({ error: error });
  7.             }
  8.         }
  9.     },
  10.  
  11.     _return: function (arg) {
  12.         return {
  13.             run: function (callback) {
  14.                 callback({ result: arg });
  15.             }
  16.         }
  17.     },
  18.  
  19.     getIdentity: function (v) {
  20.         return _return(v);
  21.     },
  22.  
  23.     fmap: function (asyncValue, f) {
  24.  
  25.         return {
  26.  
  27.             run: function (callback) {
  28.  
  29.                 asyncValue.run(function (callbackResult) {
  30.  
  31.                     if (callbackResult.result != undefined) {
  32.  
  33.                         callback({ result: f(callbackResult.result) });
  34.  
  35.                     } else {
  36.                         callback(callbackResult);
  37.                     }
  38.                 });
  39.             }
  40.         }
  41.     },
  42.  
  43.     bind: function (asyncValue, f) {
  44.  
  45.         return {
  46.  
  47.             run: function (callback) {
  48.  
  49.                 asyncValue.run(function (callbackResult) {
  50.  
  51.                     if (callbackResult.result != undefined) {
  52.  
  53.                         callback(f(callbackResult.result));
  54.  
  55.                     } else {
  56.                         callback(callbackResult);
  57.                     }
  58.                 });
  59.             }
  60.         }
  61.     },
  62.  
  63.     ajax: function (args) {
  64.  
  65.         return {
  66.             run: function (callback) {
  67.  
  68.                 $.ajax({
  69.                     type: args.type,
  70.                     url: args.url,
  71.                     data: args.data,
  72.                     contentType: args.contentType,
  73.                     dataType: args.dataType,
  74.                     success: function (data, success, failure) {
  75.                         callback({ result: data });
  76.                     },
  77.                     error: function (xhr, status, error) {
  78.                         callback({ error: error });
  79.                     }
  80.                 });
  81.             }
  82.         }
  83.     }
  84. };
Advertisement
Add Comment
Please, Sign In to add comment