首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅析Promise用法

浅析Promise用法 要理解Promise要知道没有Promise回调地狱 如何插入一段漂亮代码片 Promise语法与then用法 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束事件...从语法上说,Promise 是一个对象,从它可以获取异步操作消息。Promise 提供统一 API,各种异步操作都可以用同样方法进行处理。 Promise对象有以下两个特点。...有了Promise对象,就可以将异步操作以同步操作流程表达出来,避免了层层嵌套回调函数。此外,Promise对象提供统一接口,使得控制异步操作更加容易。...---- 要理解Promise要知道没有Promise回调地狱 一般我们要在一个函数执行完之后执行另一个函数我们称之为callback‘回调’,简单写一下 如何插入一段漂亮代码片 去博客设置页面,...Promise语法与then用法 var promise = new Promise(function(resolve, reject) { // ... some code if (/*

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

    Promise用法详解(一)

    Promise 基本概念 Promise是一个构造函数,所以可以 new 出一个Promise实例 在Promise上有两个函数 resolve(成功之后回调函数)和 reject(失败后回调函数...所以只要是Promise构造函数创建实例,都可以访问到 .then()方法 Promise表示一个一步操作,每当我们new一个Promise实例,这个实例就代表具体异步操作。...我们可以在new出来Promise实例上,调用 .then()方法,预先为这个Promise异步操作,指定成功(resolve)和失败(reject)回调函数 形式上和具体Promise异步操作区别...let promise = new Promise(function() { // 这个function内部写就是具体异步操作 } 上面则是一个具体异步操作,其中使用function制定一个具体异步操作...Promise执行时机 每当new一个Promise实例时候,除了会得到一个promise实例之外,还会立即调用我们为Promise构造函数传递那个function,执行function中异步代码

    35620

    Promise用法及使用案例

    2.基本用法 ES6规定,Promise对象是一个构造函数,用来生成Promise实例 var promise = new Promise(function(resolve,reject){ if(...3.链式操作用法 function runAsync1(){ var p = new Promise(function(resolve, reject){ //做一些异步操作...多次运行这段代码,你会随机得到下面两种结果: catch用法 我们知道Promise对象除了then方法,还有一个catch方法,它是做什么用呢?...其实它和then第二个参数一样,用来指定reject回调,用法是这样: getNumber() .then(function(data){ console.log('resolved');...即便是有错误代码也不会报错了,这与我们try/catch语句有相同功能。 all用法 Promiseall方法提供了并行执行异步操作能力,并且在所有异步操作执行完后才执行回调。

    48730

    consolewriteline用法_promise sb to do

    大家好,又见面了,我是你们朋友全栈君。 1. Promise含义 Promise 是异步编程一种解决方案,比传统解决方案——回调函数和事件——更合理和更强大。...它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束事件(通常是一个异步操作)结果。...从语法上说,Promise 是一个对象,从它可以获取异步操作消息。Promise 提供统一 API,各种异步操作都可以用同样方法进行处理。...2.基本用法 一个promise可以通过promise构造函数来创建,这个构造函数只接受一个参数:包含初始化promise代码执行器(executor)函数,在该函数内包含需要异步执行代码。...每个promise都会经历一个短暂生命周期:先是出于进行中(pending)状态,此时操作尚未完成,所以它是未处理,一旦异步操作执行结束,promise则变为已处理状态。

    36220

    Promise含义和用法「建议收藏」

    大家好,又见面了,我是你们朋友全栈君。 含义 Promise是异步编程一种解决方案。 Promise对象有以下2个特点: 1.对象状态不受外界影响。...**只有异步操作结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字由来,它英语意思就是“承诺”,表示其他手段无法改变。...就算改变已经发生了,你再对Promise对象田静回调函数,也会立即得到这个结果。这与事件(Event)完全不同,事件特点是,如果你错过了它,再去监听,是得不到结果。...有了Promise对象,就可以将异步操作以同步操作流程表达出来,避免了层层嵌套回调函数。...Promise构造函数有俩参数: resolve reject 2.用法 function runAsync1(){ var p = new Promise(function(resolve, reject

    45630

    async + await 理解和用法Promise

    获取成功结果 3. 获取失败结果 4. 多个 Promise 场景 5. async 标记函数 6. await 等待异步操作执行完成 6. async + await 相关文章推荐 1....前言 ---- async/await 是 ES7 提出基于 Promise (ES6 中提出) 解决异步最终方案 async + await 作用: 简化 promise 异步操作,把 promise...获取失败结果 ---- 当 Promise 抛出错误信息时,控制台默认是直接抛出异常 reject('接口请求失败') 可以使用 try … catch 捕获 promise 抛出错误 try...多个 Promise 场景 ---- 使用 Promise Promise.all 参数是一个数组,数组每一项是一个返回 promise 函数调用 Promise.all([getProfile...return ,那么 promise 对象 resolve 就是 undefined 如果在 async 函数中写了 return,那么 promise 对象 resolve 就是 return

    2.7K10

    ES6 Promise用法小结

    目录 1.什么是Promise reject用法 catch用法 all用法 race用法 ---- 1.什么是Promise Promise 是异步编程一种解决方案,其实是一个构造函数,自己身上有...(Ps:此处执行多次是因为研究该用法时候我在一个reactdemo中进行,该页面多个元素改变导致页面多次渲染执行所致,正常页面只渲染一次的话就所有只会执行一次) reject用法 以上是对promise...resolve用法进行了解释,相当于resolve是对promise成功时候回调,它把promise状态修改为 fullfiled,那么,reject就是失败时候回调,他把promise状态修改为...(也就是说then方法中接受两个回调,一个成功回调函数,一个失败回调函数,并且能在回调函数中拿到成功数据和失败原因),所以我们能够分别拿到成功和失败传过来数据就有以上运行结果 catch用法...即便是有错误代码也不会报错了 all用法 与then同级另一个方法,all方法,该方法提供了并行执行异步操作能力,并且在所有异步操作执行完后并且执行结果都是成功时候才执行回调。

    32320

    盘点JavaScript中Promise高级用法

    一、前言 有一系列异步任务要一个接一个地执行 — 例如,加载脚本。如何写出更好代码呢? Promise 提供了一些方案来做到这一点。...之所以这么运行,是因为对 promise.then 调用会返回了一个 promise,所以可以在其之上调用下一个 .then。...就目前而言,是做不到。 为了使链可扩展,需要返回一个在头像显示结束时进行 resolve promise。...链中下一个 .then 将一直等待这一时刻到来。 作为一个好做法,异步行为应该始终返回一个 promise。这样就可以使得之后计划后续行为成为可能。...三、总结 本文基于JavaScript基础,介绍了Promise高级用法,主要介绍了使用Promise时新手常会出现几个问题,对这几个问题进行详细解答。 通过案例分析,能够更直观展示。

    1.1K20

    ES6之Promise用法详解

    Promise基本用法 3.1 基本用法 上一小节我们认识了promise长什么样,但对它用到resolve、reject、then、catch想必还不理解。下面我们一步步学习。...回调,并返回是一个新Promise实例(不是原来那个Promise实例),且返回值将作为参数传入这个新Promiseresolve函数。...catch方法指定处理错误回调函数,Promise对象抛出错误不会传递到外层代码,即不会有任何反应(Chrome会抛错),这是Promise另一个缺点。...总结一下创建promise流程: 使用new Promise(fn)或者它快捷方式Promise.resolve()、Promise.reject(),返回一个promise对象 在fn中指定异步处理...这一章节,将会用例子形式,以说明promise使用过程中注意点及容易犯错误。

    1.2K30

    理解 $q 和 promise基本用法-2 4.17

    可以先看我第一篇文章 $q 和 promise 基础理解 $q 和 promise 需要在 angular 中掌握异步知识,我们需要掌握这几个重要知识点, http, promise 下面着重讲解一下...$q 功能和它 api 使用。...promise:回执单(承诺) 记录 promise:deferred,(延期事件) 同时,家具厂给他留下了一个回执号,并对他说:我们做好了会给您送过去,放心吧。...这叫做==promise==,也就是承诺。 这样,这个==defer==算是正式创建了,于是他把这件事记录在自己日记上,并且同时记录了回执号,这叫做==deferred==,也就是已延期事件。...$q.all:多个 promise 好,我们再扩展一下这个故事: 张先生这次需要做一个桌子,三把椅子,一张席梦思,但是他不希望今天收到个桌子,明天收到个椅子,后天又得签收一次席梦思,而是希望家具厂做好了之后一次性送过来

    86830

    【温故知新】5 个 Promise 要避免常见用法~

    本瓜一直觉得 Promise 就是咱 JS 人浪漫,没错,Promise 天天见,但或许越熟悉越陌生,我们在一直用过程中会形成一些定式,这导致难免会漏掉一些定式以外要点; 本篇带来 Promise...Promise 就是来解决回调地狱,如果还写成这个样子,那一切还有什么意义?...避免错误使用 async await Async/Await 是一种更高级语法,用于处理同步代码中多个 Promise。...=> { // HTTP request resolve(result); }); 这样做好处就是,当用它时候,它才执行,而不是我声明它时候,就执行了~ 将 Promise 惰性处理✔...Promise 提供衍生一些 API 就是拿来用Promise.all、Promise.race、Promise.finally 等待),该用就用,别客气~ ---- OK,以上就是本篇分享啦~

    22130

    JavaScript手写PromisePromise.then()、Promise.all()、Promise.race()

    我们可以将传给then函数和新Promiseresolve一起push到前一个Promisecallbacks数组中,达到承前启后效果: 承前:当前一个Promise完成后,调用其resolve变更状态...如果返回结果是个Promise,则需要等它完成之后再出发新Promiseresolve,所以可在其结果then里调用新Promiseresolve then(onFulfilled, onReject...接收一个Promise实例数组或具有Iterator接口对象作为参数 这个方法返回一个新Promise对象 遍历传入参数,用Promise.resolve()将参数“包一层”,使其变成一个Promise...该方法参数是Promise实例数组,然后其then注册回调方法是数组中某一个Promise状态变为fufilled时候执行。...因为Promise状态只能改变一次,那么我们只需要把Promise.race中产生Promise对象resolve,注入到数组中每一个Promise实例中回调函数即可。

    96410

    标准Promise

    序言 不同项目下lib里promise/deferred往往是差异化最多,用起来和自己习惯相比经常是缺胳膊少腿多屁眼有卵用,因此聊聊标准Promise啥样 不同Promise差异基本表现如下.../A Promises/A+ Promises/A+兼容扩展Promises/A而来,es6里Promise准守Promises/A+规范,也是当今标准规范。...标准Promise 构造 : new Promise(function(resolve, reject) {}) 静态方法 : Promise.all(iterable) Promise.race(iterable...不标准使用 构造Promise对象: new Promise().resolve() ( 请使用new Promise(function(resolve, reject) {}) ) .done()...支持标准es6 promise规范 npm promise 支持标准es6规范,增加了done()等方法 npm node-promise 支持标准es6规范,增加了更多工具方法,人气不如npm promise

    71050
    领券