callback and promises practice

by ClarenceDowns

HTML

<body>

</body>

JavaScript

/*const posts = [{
    title: 'Post One',
    body: 'This is post one'
  },
  {
    title: 'Post Two',
    body: 'This is post two'
  }
];

function getPosts() {
  setTimeout(() => {
		let output = '';
    posts.forEach((post, index)=>{
    output += `<li>${post.title}</li>`;
    });
    document.body.innerHTML = output;
  }, 1000);
}

function createPost(post, callback){
setTimeout(()=>{
posts.push(post);
callback();
}, 2000);
}

createPost({ title: 'Post Three', body: 'This is post three'}, getPosts);
*/
// Promises

const posts = [{
    title: 'Post One',
    body: 'This is post one'
  },
  {
    title: 'Post Two',
    body: 'This is post two'
  }
];

function getPosts() {
  setTimeout(() => {
    let output = '';
    posts.forEach((post, index) => {
      output += `<li>${posts.title}</li>`;
    });
    document.body.innerHTML = output;
  }, 1000);
}

function createPost(post) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      posts.push(post);
      const error = false;
      if (!error) {
        resolve();
      } else {
        reject('Error: Something went wrong');
      }
    }, 2000);
  });

}

createPost({
    title: 'Post Four',
    body: 'This is post four'
  })
  .then(getPosts);