码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • js中的promise函数(ES6)


    promise

                1、它被设计成一个全局构造函数

                2 、这个函数创建出来的对象 是一个特殊的数据容器

                3、这个数据容器内部有三种状态: 等待 ==>产生的正确数据  产生了错误的数据

                4、创建对象时要求传一个函数参数==>也就是在这个函数中处理耗时业务,一般用法:

    new Promise((resolve,reject)=>{resolve(),reject()}) 

    promise函数中的then和catch方法

    调用函数的resolve参数==>这时实际上就是调用了then方法传入的函数 (两者只是间接的关系)

    调用函数的reject参数==>这时实际上就是调用了catch方法传入的函数 (一样)

    1. var p1=new Promise((resolve,reject)=>{
    2. setTimeout(()=>{
    3. resolve('hello')
    4. },1000)
    5. // reject("业务出错了") 同理,resolve和reject只能存在一个
    6. })
    7. console.log(p1)
    8. p1.then((data)=>{
    9. console.log(data,111)
    10. },(err)=>{
    11. console.log(err,222)
    12. })
    13. p1.then((data)=>{ //第二种写法,但第二种会捕获错误,并继续让下面的代码正常运行
    14. console.log(data,112)
    15. })
    16. .catch((err)=>{
    17. console.log(err)
    18. })

     结果:等待1s后出现    

     注意:

    一、new Promise((result,faild)=>{})在处理耗时操作的过程中 会有3个状态

    1.处理中 没有调用resolve,reject这个方法

    2.生成正确的结果 调用resolve

    3.生成错误结果 调用reject

     二、 then函数有一个返回值:一定是一个新的Promise

                1、返回的新的Promise对象 是由cb(传入的回调)函数的返回值决定的

                2、cb函数的返回值也是一个Promise对象  那么then函数的返回值 就是它

               3、 cb函数的返回值不是一个Promise对象 那就就把cb的返回值封装为Promise对象 然后作为then的返回值

    async

    1.给函数一个async来修饰

    2.函数内部用await来修饰带promise设计的异步函数 就会直接得到结果 不需要调用then方法来获取数据

    3.async修饰的函数的返回值是一个then方法调用的返回值(同promise)

  • 相关阅读:
    JavaScript逻辑题:一个篮球的高度为100米 每次落地弹起高度为前一次高度的0.6 问多少次之后高度小于1米?
    微信扫码登陆流程
    RocketMQ 5.0 API 与 SDK 的演进
    QT动态加载qss和rcc方式
    使用FreeMarker导出word文档(支持循环导出实时多张图片)
    教培机构如何线上抢客招生?
    Springboot使用RestTemplate调用第三方接口
    【机器学习】大模型环境下的应用:计算机视觉的探索与实践
    知识图谱实体对齐3:无监督和自监督的方法
    安装Docker(Linux:CentOS)
  • 原文地址:https://blog.csdn.net/m0_63470734/article/details/126129187
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号