首页 > 其他分享 >Promise

Promise

时间:2023-11-22 10:00:41浏览次数:17  
标签:异步 resolve 函数 状态 fulfilled Promise

new Promise 是 JavaScript 中用于处理异步操作的一种方式。Promise 是一种代表了异步操作最终完成或者失败的对象。它有三个状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。

创建一个新的 Promise 通常需要一个函数作为参数,这个函数接收两个参数:resolve 和 reject,分别用于在异步操作成功和失败时改变 Promise 的状态。

下面是一个简单的例子:

javascript

let promise = new Promise((resolve, reject) => {  
    // 这是一个异步操作,可能需要一些时间来完成  
    setTimeout(() => {  
        // 异步操作成功,我们用 resolve() 来改变 Promise 的状态  
        resolve("操作成功!");  
    }, 1000);  
});  
 
promise.then(  
    // 这是一个处理成功的回调函数,它会在 Promise 的状态改变为 fulfilled 时执行  
    result => console.log(result),  
    // 这是一个处理失败的回调函数,它会在 Promise 的状态改变为 rejected 时执行  
    error => console.log(error)  

);

在这个例子中,我们创建了一个新的 Promise,这个 Promise 在一秒后将状态改变为 fulfilled,并返回字符串 "操作成功!"。我们使用 .then() 方法来指定当 Promise 的状态改变时应该执行的回调函数。第一个回调函数会在 Promise 的状态改变为 fulfilled 时执行,第二个回调函数会在 Promise 的状态改变为 rejected 时执行。

标签:异步,resolve,函数,状态,fulfilled,Promise
From: https://www.cnblogs.com/prince11/p/17848249.html

相关文章

  • promise源码加分析
    classPromise{queue1=[]//queue1为了容纳成功之后的函数们queue2=[]//queue2为了容纳失败之后的函数们constructor(fn){//newPromise(fn)constresolve=(data)=>{//fn接受resolve并在成功的时候调用setTimeout(()=>{//要等一会,否则......
  • 为什么promise.then 和 promise.catch 捕获错误的顺序不一样?
    promise.then和promise.catch捕获错误的顺序不同的原因是它们的执行时机以及错误处理机制的不同。当一个Promise被拒绝(rejected)时,它会立即触发错误处理程序。如果存在一个或多个catch方法,它们将按照添加的顺序执行,并且只有第一个匹配的catch方法会被调用。这意味着,当一个错误发生时......
  • Promise.all(iterable) 参数可以不是数组,但必须具有 Iterator 接口,且返回的每个成员
    下面关于Promise的all方法说法错误的是()Apromise.all(iterable),参数是一个数组B只有这个数组中的所有promise实例都resolve之后才会触发其返回的promise实例的thenC只要其中有任何一个promise实例被reject,那么最终的promise实例将触发catchD触发then时可以只带上iterable......
  • egret promise
    在TypeScript中,Promise是用于处理异步操作的对象。它表示一个可能在未来某个时间点完成或失败的操作,并返回操作结果或错误。Promise可以有三种状态:pending(进行中):Promise的初始状态,表示操作正在进行中。fulfilled(已完成):表示操作成功完成。rejected(已拒绝):表示操作失败。......
  • promise时效架构升级方案的实施及落地
    一、项目背景为什么需要架构升级promise时效包含两个子系统:内核时效计算系统(系统核心是时效计算)和组件化时效系统(系统核心是复杂业务处理以及多种时效业务聚合,承接结算下单黄金流程流量),后者依赖前者,分别由两组技术团队支持;因为有些业务的渗透造成两个系统的边界越来越不清晰;有......
  • javascript promise all实现图片顺序加载
    不使用promise时是异步加载,图片加载的顺序不固定<!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,user-scalable=no,initial-scale=1......
  • Vue 在内部对异步队列尝试使用原生的 Promise.then、MutationObserver 和 setImmedia
    下列关于Vue的描述错误的是()A当给某个组件修改某个值时,该组件不会立即重新渲染BVue内部使用原生Promise.then、MutationObserver和setImmediate实现异步队列,不会采用setTimeout(fn,0)C$nextTick()返回一个Promise对象D$nextTick()可以配合async/await使用正确答案:B官......
  • Promise.all静态方法
    前言AJAX的学习到这里就告一段落了,后面会做个小项目巩固之前学过的知识。后面会继续学习Node.js以及Git等知识。一、概念合并多个Promise对象,等待所有同时成功完成(或某一失败),做后续逻辑二、语法三、案例示例需求:同时请求“北京”,“上海”,“广州”,“深圳”的天气并在网页上尽可能同......
  • typescript 中的 Promise 类型定义中为何忽略了错误处理的类型?
    在TypeScript中的Promise类型定义中忽略了错误处理的类型是因为Promise类型的设计初衷是用于处理异步操作的结果,即成功或失败。当Promise成功时,它会返回一个值;而当Promise失败时,则会抛出一个错误。在Promise的类型定义中,只关注了成功的结果类型,而忽略了错误处理的类型......
  • 关于批量按顺序下载(reduce+promise)
    参考文章promiseresolverejecthttps://www.cnblogs.com/lunlunshiwo/p/8852984.html#4917337reduce按顺序调用https://juejin.cn/post/7030625338065420302?searchId=202311041036275432B88F9F3A984960AA注意点promise结果的使用reduce中的等待结果数组的存储运行截......