Skip to content

Instantly share code, notes, and snippets.

@soapdog
Last active March 12, 2016 20:41
Show Gist options
  • Save soapdog/0130b10a84e9cd5328f8 to your computer and use it in GitHub Desktop.
Save soapdog/0130b10a84e9cd5328f8 to your computer and use it in GitHub Desktop.

Revisions

  1. soapdog revised this gist Mar 12, 2016. 1 changed file with 10 additions and 14 deletions.
    24 changes: 10 additions & 14 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -4,26 +4,22 @@ function makePromise() {
    });
    }


    function gambiwrap(p) {

    if (!gambiwrap.cachedResult) {
    console.log("Promise não resolvida...");
    var gambiwrap = function(p) {
    console.log("Promessa não resolvida");

    return p.then(function(r) {
    gambiwrap.cachedResult = r;
    gambiwrap = function() {
    console.log("Promessa resolvida");

    return r;
    }
    })
    } else {
    console.log("Já resolveu essa porra");
    return gambiwrap.cachedResult;
    }
    }

    console.log("primeira chamada...")
    var p = gambiwrap(makePromise());
    console.log(p);

    gambiwrap(makePromise());

    console.log("Agora chama vc essa porra com p = gambiwrap(makePromise())");
    console.log("Agora chama vc gambiwrap(makePromise())");



  2. soapdog created this gist Mar 12, 2016.
    31 changes: 31 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    function makePromise() {
    return new Promise(function(resolve, reject){
       setTimeout(function(){ resolve('hey!') }, 500);
    });
    }


    function gambiwrap(p) {

    if (!gambiwrap.cachedResult) {
    console.log("Promise não resolvida...");
    return p.then(function(r) {
    gambiwrap.cachedResult = r;
    })
    } else {
    console.log("Já resolveu essa porra");
    return gambiwrap.cachedResult;
    }
    }

    console.log("primeira chamada...")
    var p = gambiwrap(makePromise());
    console.log(p);


    console.log("Agora chama vc essa porra com p = gambiwrap(makePromise())");