继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第3天 ES(6-11)全版本语法-异步编程解决方案Promise(1)

浪里个浪小白龙
关注TA
已关注
手记 75
粉丝 3
获赞 4
  • 课程名称:JavaScript ES(6-11)全版本语法 每个前端都需要的基础课

  • 课程章节: 异步编程解决方案Promise(1)

  • 主讲老师:谢成

课程内容:

今天学习的内容包括:

异步编程解决方案Promise

课程收获:

Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。 Promise对象有以下两个特点。
(1)对象的状态不受外界影响。
Promise对象代表一个异步操作,有三种状态:
Pending(进行中)、
Resolved(已完成,又称Fulfilled)
Rejected(已失败)。

// 状态管理
// resolve 成功
// reject 失败
let p = new Promise((resolve, reject) => {
  setTimeout(() => {
    console.log("imooc");
    // resolve()
    // reject()
    // if(){
    //     resolve()
    // }else{
    //     reject()
    // }
    // resolve('成功')
    reject("失败");
  }, 1000);
}).then(
  (res) => {
    console.log(res);
  },
  (err) => {
    console.log(err);
  }
);

let p = new Promise((resolve, reject) => {
  console.log(1);
  resolve();
});
console.log(2);
p.then((res) => {
  console.log(3);
});

let p1 = new Promise((resolve, reject) => {
  resolve(1);
});
let p2 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve(2);
  }, 1000);
});
let p3 = new Promise((resolve, reject) => {
  setTimeout(() => {
    reject(3);
  }, 1000);
});
console.log(p1); // resolved
console.log(p2); // pending
console.log(p3); // pending
setTimeout(() => {
  console.log(p2);
}, 2000);
setTimeout(() => {
  console.log(p3);
}, 2000);

p1.then((res) => {
  console.log(res);
});
p2.then((res) => {
  console.log(res);
});
p3.catch((err) => {
  console.log(err);
});

let p = new Promise((resolve, reject) => {
  reject(2);
  resolve(1);
});
p.then((res) => {
  console.log(res);
}).catch((err) => {
  console.log(err);
});

new Promise((resolve, reject) => {
    ajax('static/a.json', res => {
        console.log(res)
        resolve()
    })
}).then(res => {
    console.log('a成功')
    return new Promise((resolve, reject) => {
        ajax('static/b.json', res => {
            console.log(res)
            resolve()
        })
    })
}).then(res => {
    console.log('b成功')
    return new Promise((resolve, reject) => {
        ajax('static/c.json', res => {
            console.log(res)
            resolve()
        })
    })
}).then(res => {
    console.log('c成功')
})
getPromise('static/a.json')
    .then(res => {
        console.log(res)
        return getPromise('static/b.json')
    }).then(res => {
        console.log(res)
        return getPromise('static/c.json')
    }).then(res => {
        console.log(res)
    }).catch(err => {
        console.log(err)
    })

今天学习课程共用了35分钟,重新了解了一下异步编程解决方案Promise,这是我不知道第多少次决心补习JavaScript基础,希望能够坚持下去。

图片描述
图片描述

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP