Simple Promise Example

Posted on
  • This is a super simple example of using promises to order execution of functions asyncronously.

    // Simple promise
    function Kvp(key, value) {
      return new Promise(function(resolve, reject) {
        console.log(key, value);
        resolve();
      });
    }
    
    // Promise which runs every value second
    function RunOn(value) {
      return new Promise(function(resolve, reject) {
        setInterval(function() {
          console.log(new Date().toISOString().substring(11, 19));
          resolve();
        }, value * 1000);
      });
    }
    
    // Promise which runs once after value seconds
    function RunOnce(value) {
      return new Promise(function(resolve, reject) {
        var runOnce = setInterval(() => {
          console.log("RunOnce", value);
          clearInterval(runOnce); //stop function
          resolve();
        }, value * 1000);
      });
    }
    
    RunOn(1);
    Kvp('A', 1).then(function() {
      Kvp('B', 2);
    });
    RunOnce(5).then(() => {
      Kvp("C", 5);
    }).then(() => {
      Kvp('fin', 12);
    });
    
  • Thanks - looks great!

  • @DavidV, I'd like you to be a bit more explanatory about what you intend to convey with your example(s). What is the console output?

    On related note, what is your reasoning to use setInterval() rather than setTimeout() in RunOnce()?

    On an unrelated note - since JavaScript is object-oriented and related practice is to use Upper/lower case to distinguish Class/Prototype 'things' from method/function/members/properties 'things' - what is the reasoning to use Uppercase identifiers for the functions?

    Doing an analysis of what is effectively going on, I see line 34 as the only Promise-worthy item. May be I look at the example(s) way too narrow minded, and you have a grander vision why to use Promises even though no asynchronous things happen (except - as already mentioned - in line 34). To me, it almost feels as: Why simple, if complicated/confusing works too?

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Simple Promise Example

Posted by Avatar for DavidV @DavidV

Actions