<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>ES6 Promise</title>
</head>
<body>
<script>
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)
}
// getPosts();
function createPost (post) {
// 实例化promise对象
return new Promise((resolve,reject) => {
setTimeout(() => {
posts.push(post);
const err = true;
if(!err) {
resolve(); // 代码执行成功的话执行resolve()方法,同时执行下边的.then()方法
}else{
reject("Error:something went wrong!"); // 代码执行失败的话执行reject方法,同时执行下边的.catch()方法
}
},2000);
});
}
createPost({title:"Post three",body:"this id post three"})
.then(getPosts)
.catch(err => console.log(err))
</script>
</body>
</html>