Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ES6 语法详解(Promise对象(重点))

ES6 语法详解(Promise对象(重点))

作者头像
彼岸舞
发布于 2021-08-20 10:16:25
发布于 2021-08-20 10:16:25
46600
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
        /**
         * Promise对象
         * 1. 理解:
         *     Promise对象; 代表了未来某个将要发生的事件(通常是一个异步操作)
         *     有了Promise对象,可以将异步操作以同步的流程表达出来,避免了层层嵌套的回调函数(俗称'回调地狱')
         *     ES6的Promise是一个构造函数,用来生成Promise实例
         * 2. 使用Promise的基本步骤(2步)
         */
        // 1: 创建Promise对象
        /* 
        let promise = new Promise((resolve, reject) => {
            // 初始化Promise状态为pending
            // 2:执行异步操作
            // ajax xxx query
            // 如果执行成功
            if(true){
                resolve('执行成功') //修改Promise的转台为fullfilled
            }else{
                reject('执行失败') // 修改Promise的转台为rejected
            }
        }) */
        // 2: 调用Promise的then()
        /*
        then
            第一个函数是成功返回的时候执行
            第二个函数是失败返回的时候执行
        catch
            异常的时候执行
        promise.then(res => {
            console.log(res)
        },err => {
            console.log(err)
        }).catch(err => {
            console.log(err)
        })
         */
        /**
         * promise 对象的三种状态
         * pending: 初始化状态
         * fullfilled: 成功状态
         * rejected: 失败状态
         */

        /**
         * 应用:
         *     使用Promise实现超时处理
         * 
         *     使用Promise封装处理Ajax请求
         */
        /* 
        let request = new XMLHttpRequest()
        reject.onreadystatechange = function(){}
        request.responseType = 'json'
        request.open('GET', 'http://www.baidu.com')
        request.send() 
        */

        // 上面的代码 不可以执行 只做参考
        let promise = new Promise((resolve, reject) => {
            // 使用定时器模拟异步操作
            setTimeout(() => {
                console.log("send ajax!")
                let flag = true;
                if (flag) {
                    resolve("执行成功!")
                } else {
                    reject("执行失败")
                }
            }, 1000)
        })
        
        promise.then(res => {
            console.log('第一个函数:',res)
        },err => {
            console.log('第二个函数:',err)
        }).catch(error => {
            console.log("服务器开小差了!")
        })
    </script>
</html>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
带你玩转 JavaScript ES6 (七) – 异步
本章我们将学习 ES6 中的 Promise(异步) 相关知识,了解如何使用 Promise 对象创建异步程序
柳公子
2018/09/17
3860
带你玩转 JavaScript ES6 (七) – 异步
ES6(二):Promise
ES6之前解决异步编程只能使用回调函数或事件,ES6中加入了 Promise,使得异步编程更加简洁直观和合理
从入门到进错门
2018/12/14
4900
大白话透彻讲解 Promise 的使用,读完你就懂了
我们知道 js 执行的时候,一次只能执行一个任务,它会阻塞其他任务。由于这个缺陷导致 js 的所有网络操作,浏览器事件,都必须是异步执行。异步执行可以使用回调函数执行。
呆呆
2021/12/01
1.2K0
ES6 中 Promise 详解
Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。
Krry
2018/09/10
6820
ES6 中 Promise 详解
Promise对象
JavaScript是单线程的语言,通过维护执行栈与任务队列而实现了异步操作,setTimeout与Ajax就是典型的异步操作,Promise就是异步操作的一个解决方案,用于表示一个异步操作的最终完成或失败, 及其结果值,Promise有各种开源实现,在ES6中被统一规范,由浏览器直接支持。
WindRunnerMax
2020/08/27
6570
ES6 Promise
Promise 的状态只有两种可能,从 pending 变为 fulfilled 和 从 pending 变为 rejected,一旦状态变化,就不会再改变
Leophen
2019/08/23
5240
从零开始学 Web 之 ES6(四)ES6基础语法二
Promise是一个对象,代表了未来某个将要发生的事件(,这个事件通常是一个异步操作)
Daotin
2018/08/31
4790
从零开始学 Web 之 ES6(四)ES6基础语法二
ES6新增语法(五)——Promise详解
promise是一个对象,从它可以获取异步操作的消息。有all、race、reject、resolve这几个方法,原型上有then、catch等方法。
呆呆
2021/09/29
4690
15道ES6 Promise实战练习题,助你快速理解Promise
Promise是ES6中新增的特性,现在很多前端框架像AngularJS,Vue等在HTTP请求之后都是返回的Promise处理,因此Promise是必须要掌握的一个知识点。
winty
2021/01/05
2.4K0
ES6中的Promise深入学习
Promise是异步编程的一种新的解决方案,比传统的解决方案(纯回调函数)更加的方便和强大。简单来说,Promise就是一个容器,里面保存着某个未来才会结束的事情(通常是一个异步操作的结果)。
帅的一麻皮
2020/07/14
1.3K0
实现Promise,有手就行巨详细,不看血亏
promise表示一个异步操作的最终结果。和一个promise进行交互的主要方式是通过它的then方法,该方法注册回调要么接收一个promise的最终值,要么接收promise为什么不能被满足的原因。
hss
2022/02/25
7680
这次聊聊Promise对象
Promise是CommonJS提出的一种规范,在ES6中已经原生支持Promise对象。
前端林子
2018/10/27
2.5K2
这次聊聊Promise对象
ES6之Promise用法详解
本文主要对ES6的Promise进行一些入门级的介绍。要想学习一个知识点,肯定是从三个方面出发,what、why、how。下面就跟着我一步步学习吧~
半指温柔乐
2019/03/06
1.3K0
ES6之Promise用法详解
ES6之Promise
Promise JS是单线程的 就是同一个时间只能处理一个任务。就类似生活中的去超市排队结账,正常情况下,一位收银员只能为一位顾客结账,其他顾客需要在后面排队等候。 为什么 JS 是单线程的?作为浏览器脚本语言,JavaScript 的主要用途是与用户互动,以及操作 DOM 。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定 JavaScript同时有两个线程,一个线程在某个 DOM 节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准? 单线程就意味着,
19组清风
2021/11/15
8330
ES6之Promise
关于 ES6 中 Promise 的面试题
最近在复习 Promise 的知识,所以就做了一些题,这里挑出几道题,大家一起看看吧。
FEWY
2019/05/26
1.3K0
JavaScript之Promise对象
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 Promise 对象。
laixiangran
2018/07/25
9640
JS:你真的会用 Promise 吗?
试想一下,有 3 个异步请求,第二个需要依赖第一个请求的返回结果,第三个需要依赖第二个请求的返回结果,一般怎么做?
WEBJ2EE
2019/07/19
2.8K0
JS:你真的会用 Promise 吗?
promise & axios & async_await 关于 Promise
Promise 是ES6里面异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。 简单说Promise 就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。 有三种状态,pending(进行中)、resolved(已完成)、rejected(已失败),特点是只有异步操作的结果,可以决定当前是哪一种状态,状态一旦改变,就无法再次改变状态;
前端小tips
2021/11/24
1.7K0
promise & axios & async_await 关于 Promise
JS 手写: Promise
一个 Promise 对象代表一个在这个 promise 被创建出来时不一定已知的值。它让您能够把异步操作最终的成功返回值或者失败原因和相应的处理程序关联起来。 这样使得异步方法可以像同步方法那样返回值:异步方法并不会立即返回最终的值,而是会返回一个 promise,以便在未来某个时候把值交给使用者。
Cellinlab
2023/05/17
1.6K0
JS 手写: Promise
ES6中的Promise和Fetch
JavaScript是单线程执行的,因此,为了避免操作时的页面中断(体现为页面假死),可以使用回调函数。但是如果回调函数中仍然嵌套有回调函数,代码就会变得越来越不可维护。这篇文章介绍ES6如何通过Promise解决这个问题,并介绍了相关的Fetch方法。
张子阳
2018/09/30
1.6K0
相关推荐
带你玩转 JavaScript ES6 (七) – 异步
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档