promise是什么意思

js是单线程的,promise解决就是异步编程一种思想,比传统的回调函数和事件强大好多。promise相当于异步操作结果的占位符,他不会去订阅一个事件,也不会传递一个回调函数给目标函数,而是让函数返回一个promise(相当于订单号)。

promise是什么意思

Promise:英文承诺意思,Promise对象中保存某个未来才回结束的事件(通常是一个异步操作)的结果。

Promise有三个状态:(推荐学习:Javascript视频教程)

pendding,rejected,resolved

登录后复制

Promise对象状态的切换只有两种可能:

pendding->rejected,pendding->resolved

登录后复制

基础用法:

new Promise((resolved,rejected)=>{})

登录后复制

Promise对象resolved,rejected函数,在异步事件状态pendding->resolved回调成功时,会调用resolved函数;当异步操作失败时,回调用rejected函数。

Promise的then(resolved,rejected)函数参数有两个,一个resolved函数,一个rejected函数。

Promise的catch():捕捉promise错误函数,和then函数参数中rejected作用一样,处理错误,由于Promise抛出错误具有冒泡性质,能够不断传递,会传到catch中,所以建议所有错误处理放在catch中,then中只处理成功的。

Promise一个大特色就是可以链式调用,在then,catch中可以返回Promise对象。

Promise.all([promise1,promise2]):参数是promise对象数组,等到所有promise对象状态resolved,该对象的状态会resolved,会立即调用then,当有一个promise对象为rejected,该对象的状态就会边城rejectd,执行catch。

Promise.race([promise1,promise2]):竞速函数,当有一个promise对象状态变化了,该对象就会采用和相同的状态,并执行相应函数。

promise的生命周期

 每个 Promise都会经历一个短暂的生命周期,初始为挂起态( pending state),这表示异步操作尚未结束。一个挂起的 Promise 也被认为是未决的( unsettled )。一旦异步操作结束, Promise就会被认为是已决的( settled ),并进入两种可能状态之一:

1. 已完成(fulfilled ): Promise 的异步操作已成功结束;

2. 已拒绝(rejected ): Promise 的异步操作未成功结束,可能是一个错误,或由其他原因导致。

一旦状态改变,就「凝固」了,会一直保持这个状态,不会再发生变化。当状态发生变化,promise.then绑定的函数就会被调用。注意:Promise一旦新建就会「立即执行」,无法取消。这也是它的缺点之一。

更多Javascript相关技术文章,请访问js教程栏目进行学习!

以上就是promise是什么意思的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2730048.html

(0)
上一篇 2025年3月8日 00:13:05
下一篇 2025年3月8日 00:13:11

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 手写JS实现Promise

    promise概览 Promise是一个管理异步编程的方案,它是一个构造函数,每次使用可用new创建实例;它有三种状态:pending、fulfilled和rejected,这三种状态不会受外界影响,状态只能由pending变为fullfi…

    编程技术 2025年3月7日
    200
  • JS 的 Promise 和 Async 详解

    因为 JavaScript 是单线程语言,所以同步代码一次只能执行一行。这就意味着同步代码的运行时间超过瞬间的话,它将停止其余代码的运行,直到完成运行为止。为了防止运行时间不确定的代码阻止其他代码的运行,我们需要使用异步代码。 Promis…

    2025年3月7日
    200
  • 前端 Promise 常见的一些应用场景

    本篇将结合自身使用 es6 promise的情况,总结下promise在我们项目开发中的常见的应用场景,当然,promise 也许不是唯一选项,但是我们作为一个合格的前端开发人员,我们有必要了解它。 Promise.all 语法:Promi…

    编程技术 2025年3月7日
    200
  • Promise实践 实现微信小程序接口封装

    相信很多开发者都遇到过回调地狱的问题。由于微信小程序的api基本都是基于回调函数的异步操作,如果不使用其他框架或者封装api,特别是使用较多的wx.request(),基本很快就会遇到回调地狱的问题,维护起来十分痛苦。 举个例子 假设此时在…

    2025年3月7日
    200
  • ES6之Promise的学习

    Promise开篇 因为javascript异步机制,导致一个常见的问题,回调金字塔: loadImg(‘a.jpg’, function() { loadImg(‘b.jpg’, function() { loadImg(‘c.jpg’,…

    编程技术 2025年3月7日
    200
  • 实现Promise的手把手教程

    【相关学习推荐:javascript视频教程】 前言 很多 JavaScript 的初学者都曾感受过被回调地狱支配的恐惧,直至掌握了 Promise 语法才算解脱。虽然很多语言都早已内置了 Promise ,但是 JavaScript 中真…

    2025年3月7日
    200
  • 需要真正明白的Promise

    相关学习推荐:javascript学习教程 Promise 关于 API 这块大家应该都能熟练使用,但是和微任务相关的你可能还存在知识盲区。 前置知识 在开始正文前,我们先把本文涉及到的一些内容提前定个基调。 Promise 哪些 API …

    2025年3月7日
    200
  • 理解js原型链,继承和promis

    javascript栏目介绍原型链,继承和promis。 相关免费学习推荐:javascript(视频) 一、原型链 开局一张图 prototype 每个函数都有一个prototype属性,被称为显示原型 2._ proto _ 每个实例对…

    2025年3月7日
    200
  • 如何将 JavaScript 回调转换为 Promise?方法介绍

    在几年前,回调是 JavaScript 中实现执行异步代码的唯一方法。回调本身几乎没有什么问题,最值得注意的是“回调地狱”。 在 ES6 中引入了 Promise 作为这些问题的解决方案。最后通过引入  async/await  关键字来提…

    2025年3月7日
    200
  • 了解Promise中的all()、race()、allSettled()方法

    从ES6 开始,我们大都使用的是 Promise.all()和Promise.race(),Promise.allSettled() 提案已经到第4阶段,因此将会成为ECMAScript 2020的一部分。 1.概述 Promise.all…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论