Last active
April 21, 2023 13:21
-
-
Save vituchon/a72a9af8aaaadb670d09c70914f1ac34 to your computer and use it in GitHub Desktop.
Construyendo deferreds a manopla
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 characters
function deferBuilder<T>() { | |
type resolveType = (value: T) => void; | |
interface resolveInterface { // no funca con interface :S | |
(value: T): void; | |
} | |
type rejectType = (reason?: any) => void | |
var resolve: resolveType; | |
var reject: rejectType | |
const promise = new Promise(function (_resolve: resolveType, _reject: rejectType) { | |
console.log("newPromise") | |
resolve = _resolve | |
reject = _reject | |
}) | |
console.log("after newPromise") | |
return { | |
promise: promise, | |
resolve: resolve, | |
reject: reject | |
} | |
} | |
var a = deferBuilder<number>(); | |
a.promise.then((valor) => { | |
console.log("valor:", valor) | |
}) | |
console.log("before resolve") | |
a.resolve(54) | |
console.log("after resolve") |
FAaaaa muy interesante lo que me dejas de código @fernandezpablo85 . No era mi intención reemplazar a las Promises... aunque me gusta la propuesta que haces con Futures (como se nota que estuviste en Scala jajaja, pues sospecho que el sinonimo Promesa = Future viene de ese lenguaje...).
Mi intención era saber si estaba bien la reimplementación de defer
. El tema con las promesas nativas es que tenés que poner todo dentro de la función que pasas como argumento al Promise.New te puede complicar o hacer dificil combinarlo con otras porciones de código.
Sea como sea... te zarpaste! gracias amigo!!!
Un placer vitu 🤝
…On Mon, 17 Apr 2023 at 17:42, Vituchon ***@***.***> wrote:
***@***.**** commented on this gist.
------------------------------
FAaaaa muy interesante lo que me dejas de código @fernandezpablo85
<https://github.com/fernandezpablo85> . No era mi intención reemplazar a
las Promises... aunque me gusta la propuesta que haces con Futures (como se
nota que estuviste en Scala jajaja, pues sospecho que el sinonimo Promesa =
Future viene de ese lenguaje...).
Mi intención era saber si estaba bien la reimplementación de defers. El
tema con las promesas nativas es que coo tenés que poner todo dentro de la
función que pasas como argumento al Promise.New te puede complicar o hacer
dificil combinarlo con otras porciones de código.
Sea como sea... te zarpaste! gracias amigo!!!
—
Reply to this email directly, view it on GitHub
<https://gist.github.com/vituchon/a72a9af8aaaadb670d09c70914f1ac34#gistcomment-4539870>
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAG27KYB74NXTKNNBX7EZDXBWTMXBFKMF2HI4TJMJ2XIZLTSKBKK5TBNR2WLJDHNFZXJJDOMFWWLK3UNBZGKYLEL52HS4DFQKSXMYLMOVS2I5DSOVS2I3TBNVS3W5DIOJSWCZC7OBQXE5DJMNUXAYLOORPWCY3UNF3GS5DZVRZXKYTKMVRXIX3UPFYGLK2HNFZXIQ3PNVWWK3TUUZ2G64DJMNZZDAVEOR4XAZNEM5UXG5FFOZQWY5LFVEYTEMJZGU3DKOBSU52HE2LHM5SXFJTDOJSWC5DF>
.
You are receiving this email because you were mentioned.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>
.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Si la idea es reimplementar
Promise
, se me ocurre que va más por este lado (esta implementación es incompleta porque no maneja los errores que creo Promise hace concatch
. Tampoco soporta encadenamientos dethen
. Pero puede servir como una primera versión para implementar el resto: