Open HuangHongRui opened 6 years ago
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。
Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
Promise对象有以下两个特点。
对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)
一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected。
缺点:
Promise 实例具有then方法,也就是说,then方法是定义在原型对象Promise.prototype上的。
作用:是为 Promise 实例添加状态改变时的回调函数。(then方法的第一个参数是resolved状态的回调函数,第二个参数(可选)是rejected状态的回调函数。)
then方法返回的是一个新的Promise实例(注意,不是原来那个Promise实例)。 因此可以采用链式写法,即then方法后面再调用另一个then方法。
Promise.all方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。 Promise.race方法同样是将多个Promise实例,包装成一个新的Promise实例。
用法:
Promise对象是一个构造函数,用来生成Promise实例。
Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve方法和reject方法。
如果异步操作成功,则用resolve方法将Promise对象的状态变为“成功”(即从pending变为resolved);
如果异步操作失败,则用reject方法将状态变为“失败”(即从pending变为rejected)。
promise实例生成以后,可以用then方法分别指定resolve方法和reject方法的回调函数。
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。
Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。
Promise对象有以下两个特点。
对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)
一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected。
缺点:
Promise 实例具有then方法,也就是说,then方法是定义在原型对象Promise.prototype上的。
作用:是为 Promise 实例添加状态改变时的回调函数。(then方法的第一个参数是resolved状态的回调函数,第二个参数(可选)是rejected状态的回调函数。)
then方法返回的是一个新的Promise实例(注意,不是原来那个Promise实例)。 因此可以采用链式写法,即then方法后面再调用另一个then方法。
Promise.all方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。 Promise.race方法同样是将多个Promise实例,包装成一个新的Promise实例。
用法:
Promise对象是一个构造函数,用来生成Promise实例。
Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve方法和reject方法。
如果异步操作成功,则用resolve方法将Promise对象的状态变为“成功”(即从pending变为resolved);
如果异步操作失败,则用reject方法将状态变为“失败”(即从pending变为rejected)。
promise实例生成以后,可以用then方法分别指定resolve方法和reject方法的回调函数。