展开

关键词

promise

Promise的构造函数接收一个参数,是函数,并且传入两个参数:resolve,reject,分别表示异步操作执行成功后的回调函数和异步操作执行失败后的回调函数。

相关内容

  • Promise

    讲述Promise之前,先向大家推荐一个不错的关于Promise的学习资料JavaScript Promise迷你书(中文版) var promise = new Promise(function(resolve)});promise.then(onFulfilled, onRejected)(1)new Promise(function(resolve, reject):Promise构造器,返回一个promise创建promise对象(1)new Promise(function(resolve, reject) {});(2)Promise.resolve(value)(3)Promise.reject(error将Thenable转换为Promise对象Promise.resolve方法可以将Thenable对象转换为Promise对象。这是一个ES6的promise对象var promise = new Promise(function(resolve){ resolve(1);}); 变换为Q promise对象Q(promise
    来自:
    浏览:162
  • Promise

    Promise构造函数执行时立即调用executor函数,resolve和reject两个函数作为参数传递给executor(executor函数在Promise返回所建promise实例对象前被调用)executor内部通常会执行一些异步操作,一旦异步操作执行完毕(成功失败)要么调用resolve函数来将promise状态改成fulfilled,要么将promise函数将状态改为rejected。如果在executor函数中抛出一个错误,那么该promise状态为rejected。----2.描述promise对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。一个promise有以下几种状态: pending :初始状态fulfilled:操作成功完成rejected: 操作失败 ----3.创建Promise想要某个函数拥有promise函数,只需让其返回一个promise即可 function myAsyncFun(url){ return new Promise((resolve, reject)=>{ const xhr = new XMLHttpRequest
    来自:
    浏览:183
  • 广告
    关闭

    云+社区杂货摊第四季上线啦~

    攒云+值,TOP 100 必得云+社区定制视频礼盒

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到
  • Promise对象

    promise对象,该promise对象在iterable参数对象里所有的promise对象都成功的时候才会触发成功,一旦有任何一个iterable里面的promise对象失败则立即触发该promiseiterable)当iterable参数里的任意一个子promise被成功或失败后,父promise马上也会用子promise的成功返回值或失败详情作为参数调用父promise绑定的相应句柄,并返回该promise通常而言,如果你不知道一个值是否是Promise对象,使用Promise.resolve(value)来返回一个Promise对象,这样就能将该value以Promise对象形式使用。当这个回调函数被调用,新promise将以它的返回值来resolve,否则如果当前promise进入fulfilled状态,则以当前promise的完成结果作为新promise的完成结果。Promise.prototype.finally(onFinally)添加一个事件处理回调于当前promise对象,并且在原promise对象解析完毕后,返回一个新的promise对象。
    来自:
    浏览:113
  • Promise基础

    所以,promise的功能是可以将复杂的异步处理轻松地进行模式化, 这也可以说得上是使用promise的理由之一。Promise.resolve(thenable object) 然后会将thenable对象转换成promise对象并返回 var promise = Promise.resolve($.ajax(jsoncomment.jsonvar promise = new Promise(function (resolve){ console.log(inner promise); 1 resolve(42);});promise.then= Promise.resolve(); return promise.then(function() { 任意处理 return newVar; });}Promise.all() & Promise.raceDeferred(jQuery) 与 Promise上面用Promise对XHR进行了封装,以下用基于Promise实现的Deferred对象进行的改写function Deferred() { this.promise
    来自:
    浏览:158
  • Promise机制

    Promise 解决过程Promise 解决过程是一个抽象的操作,其需输入一个 promise 和一个值,我们表示为 ](promise, x),如果 x 有 then 方法且看上去像一个 Promise运行 ](promise, x) 需遵循以下步骤:x 与 promise 相等如果 promise 和 x 指向同一对象,以 TypeError 为据因拒绝执行 promisex 为 Promise如果x 为 Promise ,则使 promise 接受 x 的状态 :如果 x 处于等待态, promise 需保持为等待态直至 x 被执行或拒绝如果 x 处于执行态,用相同的值执行 promise如果判断Promise 对象Promise 对象必须是实现 promiseSend 方法。的层层嵌套( promise 的 value 是一个 promise )。
    来自:
    浏览:360
  • Promise 概述

    本文介绍了 Promise 的常用 API。所以,之前的写法可以改为:function func(args) { 必须返回一个Promise实例 const promise = new Promise((resolve,reject)=>{ if可以理解为then方法的实例,即在resolve和reject里面的公共操作函数 all方法 用于将多个 Promise 实例,包装成一个新的 Promise 实例。其中,item如果不是Promise对象,会自动调用Promise.resolve方法 以下代码:const p = Promise.all(); p是新包装好的一个Promise对象对于Promise.all实例,包装成一个新的 Promise 实例。
    来自:
    浏览:140
  • Promise 实践

    作者:何方舟 promise已经是成为我们解决回调炼狱的常用方案,而且已经得到官方标准支持,如果你刚刚开始使用Promise,本文将帮助你了解几个常见的几个Promise的使用场景 使用Promise示例中都可见,但这里有一点需要特别注意一下, 每次调用then都会返回一个新的Promise,如果then中的申明的方法没有返回一个Promise,那么会默认返回一个新的 处于fulfilled的Promise当要在使用链式Promise时,请在then传入的方法中返回一个新的Promise。化 大部分原生的API函数并不支持Promise,还是基于回调来使用的,所以需要把一些方法Promise化,类似trunk化。curry化是指,把需要传递多参数的函数生成一个新的函数,如上代码 先通过执行 timer得到一个新的函数,该函数会返回一个Promise,这样就完成了Promise化。
    来自:
    浏览:432
  • promise详解

    1.使用setTimeout setTimeout(() => { console.log(‘Hello World’); }, 1000) 什么情况下会用到Promise?> { console.log(res, 第三层的10行处理代码);}) 省略掉Promise.resolvenew Promise((resolve, reject) => { setTimeout> { console.log(res, 第三层的10行处理代码);}) 省略掉Promise.resolvenew Promise((resolve, reject) => { setTimeout()的使用Promise.all()用于将多个promise实例,包装成一个新的Promise实例,返回的实例就是普通的promise它接收一个数组作为参数数组里可以是Promise对象,也可以是别的值,只有Promise会等待状态改变当所有的子Promise都完成,该Promise完成,返回值是全部值得数组有任何一个失败,该Promise失败,返回值是第一个失败的子Promise结果 请求一: let
    来自:
    浏览:191
  • 图解 Promise 实现原理(二)—— Promise 链式调用

    本系列文章有如下几个章节组成:图解 Promise 实现原理(一)—— 基础实现图解 Promise 实现原理(二)—— Promise 链式调用图解 Promise 实现原理(三)—— Promise原型方法实现图解 Promise 实现原理(四)—— Promise 静态方法实现一、前言上一节中,实现了 Promise 的基础版本:极简的实现+链式调用+延迟机制+状态class Promisethen 函数内部构造了一个新的 Promise实例:Promise-2。立即执行 Promise-1 的 _handle方法。此时 Promise-1 还是pending的状态。Promise-1.改变 Promise-2 的值和状态,因为 Promise-1 的 onFulfilled 没有返回值,所以 Promise-2的值为undefined。Promise 实例的状态改变接口重新注册到 resolve 的值对应的 Promise 的 onFulfilled 中,也就是说当前 Promise 实例的状态要依赖 resolve 的值的 Promise
    来自:
    浏览:540
  • 初识promise

    Promise是ES6新出的一个构造函数,最主要的就是为了解决回调地狱的问题。Promise三个状态:pending初始状态,fulfilled(resolve)成功状态,rejected(reject)失败状态。语法:new Promise( function(resolve, reject) { } );Promise构造函数接收一个函数为参数,这个函数接收两个函数参数一个是成功resolve,一个是失败reject先看一下最简单的例子:var promise = new Promise(function (resolve, reject) { var num = parseInt(Math.random() *标准链式调用:Promise在then方法里面返回一个Promise对象,就可以直接链式调用。
    来自:
    浏览:99
  • promise源码详解,助力你轻松掌握promise

    promise对象,所以这里肯定要返回一个promise对象 promise2 = new Promise((resolve,reject)=>{ setTimeout(()=>{ 因为穿透值的缘故,在默认的跑出一个因为你的then可以返回任何职,当然包括Promise对象,而如果是Promise对象,我们就需要将他拆解,直到它不是一个Promise对象,取其中的值。function resolvePromise(promise2,x,resolve,reject){ 判断x和promise2之间的关系 因为promise2是上一个promise.then后的返回结果) return; called = true 因为可能promise中还有promise,所以需要递归 resolvePromise(promise2,y,resolve,reject) },err=对象在被创建的时候调用了resolvePromise(promise2,x,resolve,reject)函数,又因为x等于其本身,是个Promise,就需要then方法递归它,直到他不是Promise
    来自:
    浏览:302
  • ​promise源码详解,助力你轻松掌握promise

    promise对象,所以这里肯定要返回一个promise对象 promise2 = new Promise((resolve,reject)=>{ setTimeout(()=>{ 因为穿透值的缘故,在默认的跑出一个因为你的then可以返回任何职,当然包括Promise对象,而如果是Promise对象,我们就需要将他拆解,直到它不是一个Promise对象,取其中的值。function resolvePromise(promise2,x,resolve,reject){ 判断x和promise2之间的关系 因为promise2是上一个promise.then后的返回结果) return; called = true 因为可能promise中还有promise,所以需要递归 resolvePromise(promise2,y,resolve,reject) },err=对象在被创建的时候调用了resolvePromise(promise2,x,resolve,reject)函数,又因为x等于其本身,是个Promise,就需要then方法递归它,直到他不是Promise
    来自:
    浏览:160
  • 初识Promise

    什么是promise?MDN官方文档的解释如下:Promise 对象用于一个异步操作的最终完成(或失败)及其结果值的表示。这就是promise的中文含义:诺言,一个成功,一个失败。那Promise在js中到底是个什么东西呢?有人可能会问这有什么用,我直接实行console.log(1)不就行了,干嘛要包在Promise里面呢,什么鬼?这个需要回到Promise的作用上面来。Promise的作用是什么?上面的代码还不足以看出Promise的威力,只是告诉大家如何将Promise放到一个函数里面。看下运行结果:或者可以看出,在then链的调用中,某个then返回另外一个promise实例,且也是按照随机数来变换promise的状态的。
    来自:
    浏览:187
  • javascript异步之Promise.all()、Promise.race()、Promise.finally()

    依然使用axios进行ajax请求Promise.all()Promise.all()有点像“并行”我们看一个栗子 promise { const p1 = axios.get(https:easy-mock.commock5b0525349ae34e7a89352191examplepromise1Promise.all就是用于将多个 Promise 实例,包装成一个新的 Promise 实例Promise.all,接收一个数组作为参数,数组的每一项都返回Promise实例我们重点看这段代码 const(err,Promise.all错啦); })p1,p2,p3都是返回promise实例,Promise.all不关心他们的执行顺序,如果他们都返回成功的状态,Promise.all则返回成功的状态,输出一个数组三个promise实例参数之间是“与”的关系,全部成功,Promise.all就返回成功,有一个失败,Promise.all就返回失败换个角度说,一个promise的执行结果依赖于另外几个promisePromise.all类似,对应参数的要求和Promise.all相同,传入一个数组作为参数,参数要返回一个Promise实例race就是竞争的意思,数组内的Promise实例,谁执行的快,就返回谁的执行结果
    来自:
    浏览:947
  • promise总结

    new Promise( 执行器 function (resolve, reject) { 一段耗时很长的异步操作 resolve(); 数据处理完成 reject(); 数据处理出错 }).then(function A() { 成功}, function B() { 失败})Promise有三个状态:pengding 初始状态 fulfilled 操作成功 rejected 操作失败Promise一经创建,立刻开始执行,每个.then()可以返回一个新的promise实例,所以可以链式调用,也可以返回其他值或者返回空。这里要注意,如果返回新的promise,下一级的then会在新的promise状态改变之后再执行,如果返回其他任何值,则会直接执行then,不等待上一个then的promise的执行结果。promise错误处理方法1:reject(错误信息‘).then(null,message =>{});方法2:throw new Error(错误信息’).catch(message => {});
    来自:
    浏览:179
  • 图解 Promise 实现原理(四)—— Promise 静态方法实现

    更多关于 Promise 的介绍请参考阮一峰老师的 ES6入门 之 Promise 对象。很多同学在学习 Promise 时,知其然却不知其所以然,对其中的用法理解不了。本系列文章有如下几个章节组成:图解 Promise 实现原理(一)—— 基础实现图解 Promise 实现原理(二)—— Promise 链式调用图解 Promise 实现原理(三)—— Promise原型方法实现图解 Promise 实现原理(四)—— Promise 静态方法实现一、前言上一节中,实现了 Promise 的原型方法。rejected 的 Promise 实例,而 Promise.resolve 的参数如果是一个 Promise 实例的话,返回的是参数对应的 Promise 实例,所以状态不一定。Promise.reject 的实现源码2、Promise.all && Promise.racePromise.all 接收一个 Promise 实例的数组,在所有这些 Promise 的实例都 fulfilled
    来自:
    浏览:257
  • promise思考

    我写了三个单元块,分别对应三种业务场景let query;query = (url) => { url=url||传递的参数为空; return new Promise((resolve,reject)=> { setTimeout(() => { console.log(url); if(true){ resolve(我是promise执行后传递过来的数据); }else{ reject(); }}, 3000) }).catch((error)=>{console.log(error)});};基本链式调用直接传入query会取上一个promise传递过来的参数,使用()=>query()会传递空参数(0); for(let j=0;jquery(test+j)); }} 无顺序执行promise;function unsortChain(){ let arrCreate=()=>{ let arr=[]; for(let i=1;i{console.log(promise 全部执行了)}) .catch(function(error){console.log(error)});} 登录小逻辑 let
    来自:
    浏览:241
  • Promise

    promise就是一个对象,用来传递异步操作的消息,它代表未来才会知道的结果。 它有两个特点 (1)对象状态不受外界影响。pending->resolved,pending->rejected) 缺点 (1)无法取消 (2)不设置回调函数,内部错误不会反应到外部 (3)处于pending状态无法得知进展到哪里使用例子 一般不这么用 promise.then((value) => { success }, (error) => { fail 第二个参数可选 }).done(); 推荐 promise.then((value) => { success })
    来自:
    浏览:473
  • 回调、使用Promise封装ajax()、Promise入门

    回调、使用Promise封装ajax()、Promise入门1 回调是啥call a functioncall a function backcallback看这里:Callback(回调)是什么?(https:zhuanlan.zhihu.comp...下一篇博客再详细记录吧3. $.Ajax()Promise 是什么?如何用?「每日一题」Promise 是什么?原理:自己封装后的Ajax()返回一个new出来的 Promise对象,一个Promise实例,这个Promise实例有一个then属性,他是一个函数,所以可以调用then().而且then也会返回一个Promise对象.Promise接收一个函数,这个函数就是你要做的事情所以Promise本质上只是规定一种形式!5 Promise总结请背下这个代码Promise用法function xxx(){ return new Promise((f1, f2) => { doSomething() setTimeout(
    来自:
    浏览:1828
  • Promise 常用API

    Promise#thenpromise.then(onFulfilled, onRejected);示例:Promise#thenvar promise = new Promise(function(resolve示例:Promise#catchvar promise = new Promise(function(resolve, reject) { resolve(要传递给then的值);});promise.thenPromise.resolvePromise.resolve(promise);Promise.resolve(thenable);Promise.resolve(object);示例:Promise.resolvevar; true和 Promise.resolve不同的是,即使Promise.reject接收到的参数是一个promise对象,该函数也还是会返回一个全新的promise对象。参数传递promise数组中所有的promise对象都变为resolve的时候,该方法才会返回, 新创建的promise则会使用这些promise的值。
    来自:
    浏览:323

相关视频

21分23秒

深入 JavaScript 异步编程-09手写Promise

8分30秒

深入 JavaScript 异步编程-10手写Promise

23分18秒

Web前端框架通用技术 axios 4_ES6中新增加的promise应用 学习猿地

相关资讯

相关关键词

活动推荐

    运营活动

    活动名称
    广告关闭

    扫码关注云+社区

    领取腾讯云代金券