美文网首页
异步Promise

异步Promise

作者: 乘风破浪的哥哥 | 来源:发表于2021-04-27 21:46 被阅读0次

Promise介绍

异步通信编程的一种解决方案
定义方式:

let p = new Promise((resolve,reject) => {
    // 异步操作
    if(true){
        resolve('执行成功')
    }else{
        reject('执行失败')
    }
}).then(value=>{
    console.log(value)
}).catch(reason=>{
    console.log(reason)
})
// 输出 执行成功

resolve表示执行成功后的操作【then】,reject表示执行失败后的操作【catch】
执行then后,依旧返回promise实例

let p1 = new Promise((resolve,reject) => {
    setTimeout(()=>{
        resolve('1.异步')
    },3000)
})

let p2 = new Promise((resolve,reject) => {
    setTimeout(()=>{
        resolve('2.异步')
    },800)
})

let p3 = new Promise((resolve,reject) => {
    setTimeout(()=>{
        resolve('3.异步')
    },1500)
})

p1.then((value)=>{
    console.log(value)
    return p2
}).then((value)=>{
    console.log(value)
    return p3
}).then((value)=>{
    console.log(value)
})
// 输出 1.异步
//     2.异步
//     3.异步

Promise.all()

助手函数,可以直接按照顺序,依次执行promise函数

let p = Promise.all([p1,p2,p3])
p.then((value)=>{
  console.log(value)
})
// 输出 ['1.异步','2.异步','3.异步']

Promise.race()

助手函数,哪个promise先执行完,返回哪个

let p = Promise.race([p1,p2,p3])
p.then((value)=>{
  console.log(value)
})
// 输出 2.异步

Promise提供 resolve() 和 reject(),直接返回成功或者失败的promise实例

let ps = new Promise.resolve('成功')
let pj = new Promise.reject('失败')

常用的场景,保持类型的统一
在有的方法中,通过条件的不同,返回的内容类型不一样,可以通过包装,让方法的返回内容类型一致,都是promise对象

相关文章

  • 手写promise

    1. promise核心 使用 promise加入异步逻辑 前面的promise没有加异步的情况。增加异步就是在t...

  • 《JS原理、方法与实践》- ES6新增对象(下篇)

    异步处理(Promise) ES2015中新增的Promise对象专门用于处理异步。Promise对象使用then...

  • Node 学习(二)

    Promise学习 Promise含义 容器,保存异步操作的结果对象,获取异步操作的消息 Promise对象特点 ...

  • ES6 Primise异步编程

    异步操作流程化的手段 #Promise处理异步操作 Promise,使异步操作变得流程化的手段之一,例如“异步A ...

  • 循环多个 Promise 异步函数

    了解Promise 循环多个 Promise 异步函数

  • ES6 同步和异步、Promise

    一.同步与异步 1. Promise作用:解决异步回调的问题 二.Promise对象 目的:创建异步对象,当异步对...

  • react 中的 promise详解

    一、promise是什么?为什么会有promise? 首先,promise是js的抽象异步处理对象实现异步编程的方...

  • 简单记录一下Promise的使用方法

    Promise 作用 Promise意在让异步代码变得干净和直观,让异步代码变得井然有序。 Promise在设计上...

  • ES6-Promise

    构建Promise,异步实例 处理多个Promise实例 — Promise.all() 处理多个Promise实...

  • promise异步操作

    promise异步操作 定义:包含异步操作结果的对象 状态: 声明方式: new Promise((resolve...

网友评论

      本文标题:异步Promise

      本文链接:https://www.haomeiwen.com/subject/sovprltx.html