首页
学习
活动
专区
工具
TVP
发布

JS异步执行,Promise用法

Promise Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理且更强大。...它最早由社区提出并实现,ES6将其写进了语言标准,统一了用法,并原生提供了Promise对象。...Fulfilled状态(已成功) Rejected状态(已失败) 一旦状态改变就不会再变 (两种状态改变:成功或失败) Pending -> Fulfilled Pending -> Rejected 用法...创建Promise实例 var promise = new Promise(function(resolve, reject){ // ... some code if (/* 异步操作成功...then 方法可以接受两个回调函数作为参数: Promise对象状态改为Resolved时调用 (必选) Promise对象状态改为Rejected时调用 (可选) 基本用法示例 function sleep

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

浅析Promise用法

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

34710

Promise用法详解(一)

Promise 基本概念 Promise是一个构造函数,所以可以 new 出一个Promise的实例 在Promise上有两个函数 resolve(成功之后的回调函数)和 reject(失败后的回调函数...所以只要是Promise构造函数创建的实例,都可以访问到 .then()方法 Promise表示一个一步操作,每当我们new一个Promise的实例,这个实例就代表具体的异步操作。...我们可以在new出来的Promise实例上,调用 .then()方法,预先为这个Promise异步操作,指定成功(resolve)和失败(reject)回调函数 形式上和具体的Promise异步操作的区别...Promise的执行时机 每当new一个Promise实例的时候,除了会得到一个promise实例之外,还会立即调用我们为Promise构造函数传递的那个function,执行function中的异步代码...此时可以使用 .catch()进行异常捕获,只要前面Promise有任何一个执行失败,立即终止所有的Promise的执行,并马上进入catch中去处理Promise中抛出的异常。

29220

JS 手写: Promise

Promise 对象用于表示一个异步操作的最终完成 (或失败)及其结果值。 # 描述 一个 Promise 对象代表一个在这个 promise 被创建出来时不一定已知的值。...# Promise 的链式调用 我们可以用 promise.then(),promise.catch() 和 promise.finally() 这些方法将进一步的操作与一个变为已敲定状态的 promise...返回一个 promise,该 promise 在所有 promise 完成后完成。并带有一个对象数组,每个对象对应每个 promise 的结果。...# Promise.any(iterable) (opens new window) 接收一个 Promise 对象的集合,当其中的一个 promise 成功,就返回那个成功的 promise 的值。...失败,那么 Promise.all 返回的 promise 对象失败 在任何情况下,Promise.all 返回的 promise 的完成状态的结果都是一个数组 Promise.all = function

1.4K40

consolewriteline用法_promise sb to do

Promise的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。...它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。...从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。...Promise的缺点 Promise也有一些缺点。 首先,无法取消Promise,一旦新建它就会立即执行,无法中途取消。...2.基本用法 一个promise可以通过promise构造函数来创建,这个构造函数只接受一个参数:包含初始化promise代码的执行器(executor)函数,在该函数内包含需要异步执行的代码。

32620

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方法,它是做什么用的呢?...不过它还有另外一个作用:在执行resolve的回调(也就是上面then中的第一个参数)时,如果抛出异常了(代码出错了),那么并不会报错卡死js,而是会进到这个catch方法中。...all的用法 Promise的all方法提供了并行执行异步操作的能力,并且在所有异步操作执行完后才执行回调。

42030

怎么理解JS Promise

由于昨天发了一篇关于setTimeout 的文章,里面提到了 Promise ,那篇文章里没有解释Promise用法和含义,因为昨天的我还没太懂Promise,所以没有在那篇文章继续解释Promise...四、Promise与异步 Promise是异步的。js异步操作是通过js的事件循环机制EventLoop实现的。...对于异步任务来说,当其可以被执行时,会被放到一个 任务队列(task queue) 里等待JS引擎去执行。...当执行栈中的所有同步任务完成后,JS引擎才会去任务队列里查看是否有任务存在,并将任务放到执行栈中去执行,执行完了又会去任务队列里查看是否有已经可以执行的任务。...after");//同步任务 } testFn(); 上图结果证明了上述所说的js的执行顺序 。

11.5K30

JS高阶(一)Promise

Promise是什么?...抽象表达: Promise是ES6中新增的规范; Promisejs中异步编程的新解决方案(旧方案采用函数回调); 具体表达: 从语法上说:Promise是一个构造函数; 从功能上说:Promise...promise 对象; 说明:返回一个成功/失败的 promise 对象; //创建promise.resolve对象 //如果传入的对象为 非promise对象 则返回的是一个 成功的promise...对象; 说明:只返回一个失败的 promise 对象; //创建promise.resolve对象 //如果传入的对象为 非promise对象 则返回的是一个 成功的promise对象 //如果传入的对象...非promise对象 则参数的结果决定了 resolve的结果 let p = Promise.reject(521); let c = Promise.reject(new Promise(

2.3K10

JS 异步系列 —— Promise 札记

Promise; 要了解其它更为高级的异步操作得先熟悉 Promise; 基于这些目的,实践了一个符合 Promise/A+ 规范的 repromise。...本札记系列总共三篇文章,作为之前的文章 Node.js 异步异闻录 的拆分和矫正。...Promise札记 Generator札记 Async札记 Promise/A+ 核心 在实现一个符合 Promise/A+ 规范的 promise 之前,先了解下 Promise/A+ 核心,想更全面地了解可以阅读...; Promise 的状态一旦转化,将不能被更改; repromise api 食用手册 Promise.resolve() Promise.resolve() 括号内有 4 种情况 /* 跟 Promise...(),Promise.reject() 原封不动地返回参数值 Promise.all(arr) 对于 Promise.all(arr) 来说,在参数数组中所有元素都变为决定态后,然后才返回新的 promise

1.1K30

ES6 Promise用法小结

目录 1.什么是Promise reject的用法 catch的用法 all的用法 race的用法 ---- 1.什么是Promise Promise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有...(Ps:此处执行多次是因为研究该用法的时候我在一个react的demo中进行的,该页面多个元素改变导致页面多次渲染执行所致,正常页面只渲染一次的话就所有只会执行一次) reject的用法 以上是对promise...的resolve用法进行了解释,相当于resolve是对promise成功时候的回调,它把promise的状态修改为 fullfiled,那么,reject就是失败的时候的回调,他把promise的状态修改为...它将大于10的情况下的失败回调的原因输出,但是,它还有另外一个作用:在执行resolve的回调(也就是上面then中的第一个参数)时,如果抛出异常了(代码出错了),那么并不会报错卡死js,而是会进到这个...即便是有错误的代码也不会报错了 all的用法 与then同级的另一个方法,all方法,该方法提供了并行执行异步操作的能力,并且在所有异步操作执行完后并且执行结果都是成功的时候才执行回调。

28520

JSpromise是什么?

所谓的Promise,简单的来说就是一个可以存放未来才能结束的任务或者事件。 1....Promise实列有三个状态: – pending (进行中) – resolved (成功) – rejected(失败) 当要处理某个任务的时候,promise的状态是pending,任务完成是状态就变成了...3.all() 接受一个数组作为自己的参数,数组中每一项都是一个promise对象,当数组的每一个promise状态时resolved时,all方法的状态才会变成resolved,有一个变成rejected...5finally() 他是不管promise时什么状态都会执行的都会去执行的,他不接受任何的参数。 Promise的优点: – 对象的状态不受外界的影响,只有异步的操作结果才能改变他的状态。...– 一旦状态改变就不会在变,任何时候都可以得到这个结果,就如他的名字一样promise(承诺)。 Promise的缺点: – 无法去取消promise,只要创建就会执行,无法中途去终止。

3.6K10

async + await 的理解和用法Promise

前言 ---- async/await 是 ES7 提出的基于 Promise (ES6 中提出的) 的解决异步的最终方案 async + await 的作用: 简化 promise 的异步操作,把 promise...获取失败的结果 ---- 当 Promise 抛出错误信息时,控制台默认是直接抛出异常的 reject('接口请求失败') 可以使用 try … catch 捕获 promise 抛出的错误 try...多个 Promise 的场景 ---- 使用 Promise Promise.all 的参数是一个数组,数组的每一项是一个返回的 promise 的函数调用 Promise.all([getProfile...(), getProfile()]).then(res => { console.log(res, 'res'); }) 使用 await 因为 Promise.all 返回的也是一个 Promise,...是 promise 对象,不是 promise 对象 const res = await getProfile() 如果不是 promise 对象,await 会阻塞后面的代码,先执行 async 外面的同步代码

1.6K10
领券