zoukankan      html  css  js  c++  java
  • Promise的使用

    Promise的简单认识

    Promise 是ES6中对异步编程的一种解决方案,可以避免出现回调地狱

    Promise最基本的语法

     new Promise((resolve, reject) => {
            setTimeout(()=>{
                resolve('data');
                reject('error')
            },1000)
        }).then((data)=>{
            console.log(data)
        }).catch((error)=>{
            console.log(error)
        })
    

    这里我们用定时器模拟异步事件:

    resolve与reject它们两个也是函数,会根据请求数据的成功和失败来决定调用哪一个。

    请求成功,就在then( )里面执行resolve函数,请求失败在catch( )里面执行rejecte函数。

    Promise 的链式调用

        // 第一次网络请求
        new Promise((resolve, reject) => {
            setTimeout(()=>{
                resolve('A')
            },1000)
        }).then((A)=>{
            // 执行第一次网络请求
            console.log('AAA');
            // 对执行结果进行第一次处理
            return new Promise((resolve, reject) => {
                    resolve(A+'BBB')
            }).then((A)=>{
                // 第一次处理结果
                console.log(A);
                //对执行结果进行第二次处理
                return new Promise((resolve, reject) => {
                        resolve(A+'CCC')
                })
            }).then((A)=>{
                //第二次处理结果
                console.log(A)
            })
        })
    

    省略掉Promise,resolve

     new Promise((resolve, reject) => {
           setTimeout(()=>{
               resolve('A')
           },1000)
       }).then((A)=>{
           console.log('AAA');
           return A + 'BBB'
       }).then((A)=>{
           console.log(A);
           return A + 'CCC'
       }).then((A)=>{
           console.log(A)
       })
    
    
  • 相关阅读:
    SQLZOO:SELECT from WORLD Tutorial
    Spyder——小技巧+快捷键
    JDK国内镜像
    debian 安装 plymouth 美化开机动画
    docker 国内镜像加速
    有关npm镜像加速的问题 yarn nvm yrm
    调整vscode工具栏侧边栏字体大小
    github的淘宝代理?
    fcitx5 主题设置
    debian testing安装qemu-kvm和virt-manager
  • 原文地址:https://www.cnblogs.com/ymzi/p/12051149.html
Copyright © 2011-2022 走看看