promise使用的一些尝试

1.resolve

/**
 * resolve 尝试
 */
function test_resolve() {
  let promise1 = new Promise((resolve, reject) => {
    resolve('res1')
  })
  promise1.then((res) => {
    console.log(res);
    return res + res
  }).then((res) => {
    console.log(res);
  })
}

test_resolve()

2.reject

/**
 * reject 尝试
 */
function test_reject() {
  let promise2 = new Promise((resolve, reject) => {
    reject('err1')
  })
  promise2.catch((err) => {
    console.log(err);
  })
}

test_reject() 

3.长链式调用

/**
 * 长链式调用 尝试
 */
function test_long_then() {
  let promise3 = new Promise((resolve, reject) => {
    resolve('res1')
  })
  promise3.then((res) => {
    console.log(res);
    return 'res2'
  }).then((res) => {
    console.log(res);
    return Promise.reject('err1')
  }).catch(err => {
    console.log(err);
  }).finally(() => {
    console.log('end');
  })
}

test_long_then() 

4.promise.all

/**
 * promise.all 尝试
 */
function test_all_resolve() {
  let arr = [
    Promise.resolve('err1'),
    Promise.resolve('res2'),
    Promise.resolve('res3'),
  ]

  Promise.all(arr).then((res) => {
    console.log(res)
    return res
  }).then((res)=>{
    console.log(res)
    if(res[0] === 'err1'){
      return Promise.reject(res[0])
    }
  }).catch((err)=>[
    console.log(err)
  ])
}

/**
 * promise.all 尝试
 * @property {Array} arr0 全是 resolve 的数组
 * @property {Array} arr1 全是 reject 的数组
 * @property {Array} arr2 先 resolve 后 reject 的数组
 * @property {Array} arr3 先 reject 后 resolve 的数组
 */
function test_all_reject() {
  let arr0 = [
    Promise.resolve('res1'),
    Promise.resolve('res2')
  ]
  let arr1 = [
    Promise.reject('err1'),
    Promise.reject('err2')
  ]
  let arr2 = [
    Promise.resolve('res1'),
    Promise.reject('err1'),
  ]
  let arr3 = [
    Promise.reject('err1'),
    Promise.resolve('res1'),
  ]

  Promise.all(arr0).then((res) => {
    console.log('all_resolve_res:',res)
  }).catch((err)=>{
    console.log('all_resolve_err:',err)
  })

  Promise.all(arr1).then((res) => {
    console.log('all_reject_res:',res)
  }).catch((err)=>{
    console.log('all_reject_err:',err)
  })

  Promise.all(arr2).then((res) => {
    console.log('resolve_reject_res:',res)
  }).catch((err)=>{
    console.log('resolve_reject_err:',err)
  })

  Promise.all(arr3).then((res) => {
    console.log('reject_resolve_res:',res)
  }).catch((err)=>{
    console.log('reject_resolve_err:',err)
  })
}

test_all_resolve() 
test_all_reject() 

相关推荐

  1. promise使用一些尝试

    2024-01-16 18:32:01       38 阅读
  2. 前端中promise.all()使用

    2024-01-16 18:32:01       15 阅读
  3. promise使用示例

    2024-01-16 18:32:01       35 阅读
  4. 【ES6】Promise 使用

    2024-01-16 18:32:01       23 阅读
  5. promise.race方式使用

    2024-01-16 18:32:01       14 阅读
  6. Promise理解

    2024-01-16 18:32:01       14 阅读

最近更新

  1. C++惯用法: 通过std::decltype来SFINAE掉表达式

    2024-01-16 18:32:01       0 阅读
  2. HTTP 范围Range请求

    2024-01-16 18:32:01       0 阅读
  3. React 开发报错整理

    2024-01-16 18:32:01       0 阅读
  4. 微软 Edge 浏览器全解析

    2024-01-16 18:32:01       1 阅读
  5. 静态搜索iOS动态链接函数的调用位置

    2024-01-16 18:32:01       1 阅读

热门阅读

  1. 从抖音API看电商行业的未来趋势

    2024-01-16 18:32:01       33 阅读
  2. 用python实现调用nosql

    2024-01-16 18:32:01       32 阅读
  3. Linux 文本处理三剑客:grep、sed 和 awk

    2024-01-16 18:32:01       25 阅读
  4. Kafka学习

    2024-01-16 18:32:01       35 阅读
  5. SpringBoot 原理深入及源码剖析

    2024-01-16 18:32:01       25 阅读
  6. 从“Linux VS Laxcus谁更强”说开去

    2024-01-16 18:32:01       28 阅读
  7. TensorFlow是由Google开发的开源深度学习框架

    2024-01-16 18:32:01       38 阅读
  8. 网络安全产品之认识防火墙

    2024-01-16 18:32:01       37 阅读