Promise对象:代表了未来某个将要发生的事件(通常是一个异步操作)
好处:有了promise对象,可以将异步操作以同步的流程表达出来,避免了层层嵌套的回调函数(回调地狱)

1.promise原理

  1. promise有两种状态
  2. resolve处理成功的情况
  3. reject处理失败的情况
  1. const promise = new Promise((resolve, reject) => {
  2. resolve(2);
  3. reject(3);
  4. })
  5. promise.then(res => {
  6. console.log(res);
  7. }, err => {
  8. console.log(err);
  9. })

2.没有promise之前的处理

  1. function http(url,callback) {
  2. $.ajax({
  3. url,
  4. dataType: "json",
  5. success(res) {
  6. callback(res);
  7. }
  8. })
  9. }
  10. http(url,res=>{
  11. console.log(res);
  12. })

3.使用promise

  1. var promise = new Promise((resolve,reject)=>{
  2. $.ajax({
  3. url,
  4. dataType:"json",
  5. success(res){
  6. resolve(res);
  7. },
  8. error(err){
  9. reject(err);
  10. }
  11. })
  12. })
  13. promise.then(res=>{
  14. console.log(res);
  15. },err=>{
  16. console.log(err);
  17. })