promise的含义: 是一种异步编程的解决方案,有了promise,就可以将异步的操作以同步的流程表达出来.避免层层嵌套的回调函数.
promise对象特点:1. 对象的状态不受外界影响;
2.一旦状态改变,就不会再变,任何时候都可以得到这个结果
promise对象缺点:1.无法取消Promise
2.如果不设置回调函数,Promise内部抛出的错误,不会反应到外部
3.当处于pending状态时,无法得知目前进展到哪一个阶段
例: let myPromise = new Promise(function(resolve, reject){
let num = 5;
if(num > 3){
resolve('执行成功的回调,本字符串是回调的参数,可以是其他类型')
} else {
reject('执行失败的回调,本字符串是回调的参数,可以是其他类型')
}
})
myPromise.then(function( data ){ //then方法的第一个参数是resolve的回调函数
console.log(data) // '执行成功的回调,本字符串是回调的参数,可以是其他类型'
})
1.promise对象的三个状态 pending (进行中), resolve (已完成) , reject (已失败)
2.promise对象的方法 .then(), .catch(), .finally(), .all(), .race(), .allSettled(), .any(), .resolve(), .reject(), .try()
3.promise对象的应用:
加载图片
我们可以将图片的加载写成一个Promise,一旦加载完成,Promise的状态就发生变化。
const preloadImage=function(path){returnnewPromise(function(resolve,reject){const image=newImage();image.onload=resolve;image.onerror=reject;image.src=path;});};