zoukankan      html  css  js  c++  java
  • Promise的初步认识

    一、

      Promise是异步编程的一种解决方案

    二、什么时候需要处理异步编程?

      1、网络请求

        我们封装一个网络请求的函数,因为不能立即拿到结果,所以我们往往会传入另外一个函数

        在数据请求成功时,将数据通过传入的函数回调出去,但是当网络请求非常复杂时,就会出现回调地狱

    三、Promise的三种状态

      当我们在开发中有异步操作时,就可以给异步操作包装一个promise

      

      promise的三种状态:

        1、pending:等待状态,比如正在进行网络请求,或者定时器没有到时间

        2、fulfill:满足状态,当我们主动回调resolve时,就处于该状态,并且会回调.then()

        3、reject:拒绝状态,当我们主动回调reject时,就处于该状态,并且会回调.catch()

    方式:

      new Promise((resolve,reject) = {

        setTimeout(() => {

          resolve('good message')

          reject('error message')

        }, 1000)

      }).then(data => {

        console.log(data)

        console.log(data)

      }).catch(err => {

        console.log(err)

      })

    四、Promise的链式调用

      无论是then还是catch都会返回一个Promise对象

      所以代码是可以进行链式调用的:

        Promise.resolve():将数据包装称Promise对象,并且在内部回调resolve对象

        Promise.reject():将数据包装成Promise对象,并且在内部回调reject对象

    五、Promise的简写方式

      1、

        return Promise.resolve(res+'111');

        return Promise.reject(res+'222');

      2、省略Promise.resolve

        return res + '111';

        throw 'error message';

  • 相关阅读:
    九月读书笔记
    Apache Shiro 使用手册(一)Shiro架构介绍
    通过js动态生成页面表格
    PHP 命名空间与自动加载机制介绍
    PHP PSR 代码规范基本介绍
    PHP 图像居中裁剪函数
    PHP 获取IP地址位置信息「聚合数据API」
    HTML5 图片本地压缩上传插件「localResizeIMG」
    Apache 配置多站点访问「为项目分配二级域名」
    PHP 文件夹操作「复制、删除、查看大小」迭代实现
  • 原文地址:https://www.cnblogs.com/jjbw/p/12173245.html
Copyright © 2011-2022 走看看