promise简单总结

promise一些总结

Promise 对象 - ECMAScript 6入门 (ruanyifeng.com)
// 一般情况下是有异步操作时,使用Promise对这个异步操作进行封装
// new -> 构造函数(1.保存了一些状态信息 2.执行传入的函数)
// 在执行传入的回调函数时, 会传入两个参数, resolve, reject.本身又是函数

特点:

(1)对象的状态不受外界影响。

(2)一旦状态改变,就不会再变,任何时候都可以得到这个结果

1.基本使用

形式一

new Promise((resolve, reject) => {
    setTimeout(() => {
      // resolve('Hello World')// 成功的时候调用resolve
      //reject('error message')// 失败的时候调用reject
    }, 1000)
  }).then((res) => {
    //处理代码
    console.log(res);
  }).catch((err) => {
    console.log(err);
  })

形式二

new Promise((resolve, reject) => {
    setTimeout(() => {
      // resolve('Hello world')
     // reject('error message')
    }, 1000)
  }).then(
    res => {console.log(res);}, 
    err => { console.log(err);}
  )
2.链式调用
new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('aaa')
    }, 1000)
  }).then(
    res => {
    // 1.自己处理10行代码
    console.log(res, '第一层的10行处理代码');
    // 2.对结果进行第一次处理
    return res + '111'
  }).then(res => {
    console.log(res, '第二层的10行处理代码');
    return res + '222'
  }).then(res => {
    console.log(res, '第三层的10行处理代码');
  })
3.all方法
Promise.all([
     new Promise((resolve, reject) => {
       $.ajax({
         url: 'url1',
         success: function (data) {
           resolve(data)
         }
       })
     }),
     new Promise((resolve, reject) => {
       $.ajax({
         url: 'url2',
         success: function (data) {
           resolve(data)
         }
       })
     })
  ]).then(results => {//所有请求成功
    console.log(results);
  })
4.any方法
Promise.any([
  fetch('https://v8.dev/').then(() => 'home'),
  fetch('https://v8.dev/blog').then(() => 'blog'),
  fetch('https://v8.dev/docs').then(() => 'docs')
]).then((first) => {  // 只要有一个 fetch() 请求成功
  console.log(first);
}).catch((error) => { // 所有三个 fetch() 全部请求失败
  console.log(error);
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值