Last active
November 22, 2017 16:50
Revisions
-
rainder revised this gist
Nov 22, 2017 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,12 +3,12 @@ function DeferredFnStack(fn) { let stack = Promise.resolve(); return (...args) => { const dfd = defer(); stack = stack .catch(() => null) .then(() => fn(...args).then(dfd.resolve, dfd.reject)); return dfd.promise; }; -
rainder revised this gist
Jul 27, 2017 . 1 changed file with 27 additions and 15 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,30 +1,42 @@ 'use strict'; function DeferredFnStack(fn) { let stack = Promise.resolve(); return () => { const dfd = defer(); stack = stack .catch(() => null) .then(() => fn().then(dfd.resolve, dfd.reject)); return dfd.promise; }; /** * * @returns {{}} */ function defer() { const dfd = {}; dfd.promise = new Promise((resolve, reject) => { dfd.resolve = resolve; dfd.reject = reject; }); return dfd; } } /** * USAGE */ const fn = DeferredFnStack(() => { return new Promise((resolve) => { setTimeout(() => resolve('hi'), 1000); }); }); fn().then((value) => console.log(value)); @@ -33,4 +45,4 @@ fn().then((value) => console.log(value)); /* Outputs 3 times 'Hello World!' with 1000ms interval */ -
rainder revised this gist
Jan 25, 2016 . 1 changed file with 4 additions and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -4,7 +4,7 @@ const Q = require('q') function DeferredFnStack(fn) { let stack = Q.when(); return function () { const dfd = Q.defer(); stack = stack.fin(() => Q.when(fn()).then(dfd.resolve, dfd.reject)); return dfd.promise; @@ -16,12 +16,9 @@ function DeferredFnStack(fn) { */ function asyncPromise(value) { return new Promise(function (resolve) { setTimeout(() => resolve(value), 500); }); } const fn = DeferredFnStack(function () { -
rainder renamed this gist
Jan 25, 2016 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
rainder revised this gist
Jan 25, 2016 . 1 changed file with 30 additions and 29 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,38 +1,39 @@ 'use strict'; const Q = require('q') function DeferredFnStack(fn) { let stack = Q.when(); return () => { const dfd = Q.defer(); stack = stack.fin(() => Q.when(fn()).then(dfd.resolve, dfd.reject)); return dfd.promise; }; } /** * USAGE */ function asyncPromise(value) { const dfd = Q.defer(); const resolve = () => dfd.resolve(value) setTimeout(resolve, 500) return dfd.promise } const fn = DeferredFnStack(function () { return Q.resolve('Hello World!') .then(asyncPromise) .then(asyncPromise) }); fn().then((value) => console.log(value)); fn().then((value) => console.log(value)); fn().then((value) => console.log(value)); /* Outputs 3 times 'Hello World!' with 1000ms interval */ -
rainder renamed this gist
Aug 4, 2014 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
rainder revised this gist
Jul 11, 2014 . 1 changed file with 27 additions and 13 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -7,18 +7,32 @@ DeferredFnStack = (fn) -> dfd = Q.defer() stack = stack.fin -> Q.when(fn()).then(dfd.resolve, dfd.reject) dfd.promise ### USAGE ### asyncPromise = (value) -> dfd = Q.defer() resolve = -> dfd.resolve(value) setTimeout resolve, 500 dfd.promise fn = DeferredFnStack -> Q.resolve('Hello World!') .then asyncPromise .then asyncPromise fn().then (value) -> console.log value fn().then (value) -> console.log value fn().then (value) -> console.log value ### Outputs 3 times 'Hello World!' with 1000ms interval ### -
rainder revised this gist
Jul 11, 2014 . 1 changed file with 16 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,4 +6,19 @@ DeferredFnStack = (fn) -> return -> dfd = Q.defer() stack = stack.fin -> Q.when(fn()).then(dfd.resolve, dfd.reject) dfd.promise # USAGE fn = DeferredFnStack -> Q.when() .then asyncAction1 .then asyncAction2 .then asyncAction3 fn() fn() fn() fn() fn() -
rainder revised this gist
Jul 11, 2014 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,9 +1,9 @@ Q = require 'q' DeferredFnStack = (fn) -> stack = Q.when() return -> dfd = Q.defer() stack = stack.fin -> Q.when(fn()).then(dfd.resolve, dfd.reject) dfd.promise -
rainder revised this gist
Jul 11, 2014 . 1 changed file with 2 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,3 +1,5 @@ Q = require 'q' DeferredFnStack = (action) -> stack = Q.when() -
rainder created this gist
Jul 11, 2014 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,7 @@ DeferredFnStack = (action) -> stack = Q.when() return -> dfd = Q.defer() stack = stack.fin -> Q.when(action()).then(dfd.resolve, dfd.reject) dfd.promise