For the sake of providing you with an answer, I would not use this in place of the existing solutions. There's a lot of wisdom behind the Promises/A+ specification, and my promise implementations of choice follow that spec.
-Schoon On Thu, Apr 4, 2013 at 12:44 PM, Paul <[email protected]> wrote: > Ok. This will be my last time asking before I give up on it. :) > > Any feedback? > > https://gist.github.com/anonymous/4421563620c1cbbf5503#file-promise-js > > > On Wednesday, April 3, 2013 9:57:55 AM UTC-4, Paul wrote: >> >> Anyone have any suggestions? Naming of .finish to something else? Would >> anyone use this if I published it? I thought the most useful part of it is >> that it can interop with regular callback style. >> >> On Monday, April 1, 2013 1:10:28 PM UTC-4, Paul wrote: >>> >>> Btw, you also CAN return the promise from the function you call: >>> >>> function doSomethingElse(callback){ >>> var p = promise(callback); >>> setTimeout(function(){ >>> p(1,2); >>> }, 1000); >>> return p; >>> } >>> >>> var p = doSomethingElse(); >>> p.finish(function(a,b) { console.log(a, b); }); >>> >>> On Monday, April 1, 2013 11:14:07 AM UTC-4, Paul wrote: >>>> >>>> I was trying to do the following: >>>> >>>> Read a file from disk >>>> Cache the results of the file >>>> Use the cache if it's requested again >>>> >>>> Everything worked fine unless I read the file multiple times before the >>>> first read came back -- in this case, obviously the file would be read from >>>> disk multiple times because it's not in cache yet. >>>> >>>> To get around this problem, I came up with a small implementation of >>>> promises -- which I will call a "pseudo-promise" because it doesn't do all >>>> the stuff that a promise normally does. My goal was to allow it to be used >>>> in combination with normal callback styles. >>>> >>>> https://gist.github.com/anonymous/4421563620c1cbbf5503 >>>> >>>> It got a little bit out of order here: promise.js should be the first >>>> file you look at -- memoize.js is the implementation of it I used for >>>> caching files. >>>> >>>> Because I wanted to be able to pass the "promise" also be used as a >>>> callback, I added the finish method directly to the callback function. In >>>> this respect, it works different than a normal "promise" in that you'll >>>> pass >>>> it to the function you want to use a promise with, instead of having the >>>> function return a promise. >>>> >>>> You can check out promiseTest.js for a simpler example of how it works. >>>> >>>> Any feedback would be appreciated. > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
