js 是一个异步开发语言
异步 不再等待完成后执行后面,而是继续下向执行
由回调地狱引出promise对象
var p=new Promise(function(resolve,reject){
// resolve和reject这两个参数都是回调函数 //resolve和reject只能传一个参数
var img=new Image();
img.src="./img/1-.jpg";
img.onload=function(){
resolve();//resolve只会执行then中的第一个函数
}
img.onerror=function(){
reject();
// 当执行reject时,会执行后面的then当中第二个函数,如果有catch(),
// 则会执行catch方法中的函数
// 如果既有then中第二个函数也有catch,则完成then中第二个函数,catch不执行
}
});
loadImage("./img/2-.jpg").then(function(){
console.log("aaa");
// 如果没有返回promise 则会创建一个新的Promise返回
// return new Promise(function(resolve,reject){
// resolve();
// })
}).then(function(){
console.log("bbb");
}).then(function(){
console.log("ccc");
})