JS中有同步和异步两个概念,像http请求、定时器等操作都属于异步操作,为了能够更方便的对异步进行操作,ES6添加了Promise( )来将异步操作包装成异步对象,并且异步对象也像其他对象一样支持链式调用。
let p = new Promise(executor(resolveFunc,rejectFunc)=>{resolveFunc()/rejectFunc()});
实例对象方法:
then(onFulfilled(val), onRejected(err)):用于为 Promise 对象的完成(兑现或拒绝)设置回调函数。
catch(onRejected(err)):在 promise 被拒绝时调用的函数。
finally():在 promise 敲定(兑现或拒绝)时调用的函数。这可以让你避免在 promise 的 then() 和 catch() 处理器中重复编写代码。
构造函数的静态方法: resolve():用于解决(resolve)一个 Promise 对象。
reject():返回一个已拒绝(rejected)的 Promise 对象,拒绝原因为给定的参数。
any():当输入的任何一个 Promise 兑现时,这个返回的 Promise 将会兑现,并返回第一个兑现的值。当所有输入 Promise 都被拒绝(包括传递了空的可迭代对象)时,它会以一个包含拒绝原因数组的 AggregateError 拒绝。
race():返回的 promise 会随着第一个 promise 的敲定而敲定。
all():会在任何一个输入的 Promise 被拒绝时立即拒绝。
allSettled():当所有输入的 Promise 都已敲定时(包括传入空的可迭代对象时),返回的 Promise 将被兑现,并带有描述每个 Promise 结果的对象数组。
Promise()构造函数的实现原理:blog.csdn.net/Niall_Tonsh…
fetch,ajax,http,get,等之间的区别待补充。