Skip to content
Snippets Groups Projects

node-example async await

  • Clone with SSH
  • Clone with HTTPS
  • Embed
  • Share
    The snippet can be accessed without any authentication.
    Authored by Brigitte Jellinek
    Edited
    await.mjs 1.67 KiB
    /* ignore the first 50 lines */
    
    import {execSync} from 'child_process';
    
    const ImageModule = {
      resize: function(data) {
        execSync('sleep 1');
        return "resized data";
      }
    }
    const File = {
      getFile: function(src) {
        return new Promise((resolve, reject) => {
          setTimeout(function(){
            resolve("image data");
          }, 0);
        });
      },
      saveFile: function(data, dst) {
        return new Promise((resolve, reject) => {
          setTimeout(function(){
            resolve(true);
          }, 0);
        });
      }
    }
    const TwitterAPI = {
      getProfile: function(username) {
        return new Promise((resolve, reject) => {
          setTimeout(function(){
            resolve({username: 'bjelline', followers: [1,2,3]});
          }, 0);
        });
      },
    };
    
    const Model = {
      setFollowers: function(username, followers) {
        return new Promise((resolve, reject) => {
          setTimeout(function(){
              resolve(true);
          }, 0);
        });
      },
    };
    
    
    
    
    
    /*                            */
    /*  example code starts here  */
    /*                            */
    
    async function fetchTwitterFollowers(username) {
      const profile = await TwitterAPI.getProfile(username);
      await Model.setFollowers(profile.username, profile.followers);
      return profile.followers.length;
    }
    async function createThumbnail(src, dest) {
      const fileData = await File.getFile(src);
      const newImage = ImageModule.resize(fileData);
      await File.saveFile(newImage, dest);
      return true;
    }
    
    const [number, success] = await Promise.all([
      fetchTwitterFollowers('fhsalzburg'),
      createThumbnail('/tmp/files/fhsalzburg.png', '/data/fhsalzburg.png')
    ]);
    
    console.log("number of followers", number);
    console.log("and thumbnail created? " +  (success ? "yes" : "no"));
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment