<!DOCTYPE html> <html> <head> <title></title> </head> <body> <script> /* * 定义两个Promise实例化对象,这两个是需要异步操作的两个方法 * 在promise对象实例化是传入一个方法,这个方法两个参数,一个是异步调用成功,一个是失败 * 这个方法里面执行的异步操作会在结束时调用一下resolve * 执行是在then里面执行,then的函数要有resolve才能执行,然后通过return来执行下一个then * 首先调用demo1的then方法,传入一个方法,相当于resolve,然后按照then一步一步往下执行 */ function demo1 () { var p = new Promise(function(resolve, reject){ //做一些异步操作 setTimeout(function(){ console.log(‘success11‘); resolve("test1"); }, 2000); }); return p; } function demo2 () { var p2 = new Promise(function(resolve, reject){ //做一些异步操作 setTimeout(function(){ console.log(‘success22‘); resolve("test2"); }, 1000); }); return p2; } demo1().then(function(data){ console.log(data); return demo2(); }).then(function(data) { console.log(data); return demo1(); }) </script> </body> </html>