promise联合国戒指 promise promise戒指什么意思( 四 )


通过then方法 , 将指定resolved状态和rejected状态的回调函数 。
promise.then(function(value) { // success }, function(error) { // failure });Promise.all(iterable) , iterable必须是一个可以迭代的对象 , 如Array
返回值为一个新的Promise实例 。
var p1 = new Promise((resolve, reject) => {setTimeout(resolve, 1000, &39;one&39;); }); var p2 = new Promise((resolve, reject) => {setTimeout(resolve, 2000, &39;two&39;); });var p3 = new Promise((resolve, reject) => { setTimeout(resolve, 3000, &39;three&39;);});var p4 = new Promise((resolve, reject) => { reject(&39;p4 reject!&39;);});var p5 = new Promise((resolve, reject) => { reject(&39;p5 reject!&39;);});Promise.all([p1, p2, p3, p4, p5]).then(values => {console.log(values);}, reason => { console.log(reason)});// p4 reject!Promise.race(iterable) , 同理 , 返回值为一个新的Promise实例 。
返回的新实例状态 , 会是最先改变状态的那个实例 , 如果不是Promise实例 , 先用Promise.resolve方法 , 如果传入的迭代为空 , 则返回的Promise永久等待 。
一个Promise实例原封不动的返回该实例;
var original = Promise.resolve(&39;第二行&39;);var da = Promise.resolve(original);da.then(function(value) { console.log(&39;value: &39; + value);});console.log(&39;original === da ? &39; + (original === da));// &34;original === da ? true&34;// &34;value: 第二行&34;跟随这个thenable对象的 , 采用它的最终状态;
let thenable = { then: function(resolve, reject) { resolve(41); }}let p = Promise.resolve(thenable);p.then(function(value) { console.log(value);}) // 41直接将传入参数当最终结果 , 并返回一个新的Promise;
let p = Promsie.resolve(12);p.then(function(number) { console.log(number);})// 12直接返回一个resolved状态的Promise对象
let p = Promsie.resovle();p.then(function() { // do something })Promise.prototype.then()
p.then(onResolve, onReject);p.then(function(value) { }, function(reason) {});Promise.prototype. catch()
p.catch(onReject) p.catch(function(reason) { }); // badpromise .then(function(data) { // success }, function(err) { // error });// goodpromise .then(function(data) {// success }) .catch(function(err) { // error });Promise.prototype. finally()
p.finally(onFinally); p.finally(function() {})该回调函数的不接受任何参数
promise是一个对象 , 代表一个异步操作 , 有三种状态 , 进行中 , 成功 , 失败 。只有异步操作的结果的可以决定当前是哪种状态 , promise一旦新建执行 , 就没有办法中途停止 。
Promise.all方法用于将多个Promise实例 , 包装成一个新的Promise实例 。只有当作为参数所有的promise函数运行完毕 , 才会执行.then回调 。

promise联合国戒指 promise promise戒指什么意思

文章插图

promise联合国戒指 promise promise戒指什么意思

文章插图

promise联合国戒指 promise promise戒指什么意思

文章插图
//以往回调方式函数1(function(){ //代码执行...(ajax1)函数2(function(){ //代码执行...(ajax2)函数3(function(data3){ //代码执行...(ajax3) }); ... });});//Promise回调方式:链式调用,可构建多个回调函数 。promise().then().then()...catch()//创建Promise实例let promise = new Promise( (resolve, reject) => { //执行相应代码 根据情况调用resolve或reject ...})//promise的then方法中执行回调promise.then(function(){ //第一个参数是返回resolve时 },function(){ //第二个是回调返回reject时 }}定时器调用
const promise = new Promise(function(resolve, reject){ setTimeout(resolve,1000);})promise.then(function(){ console.log(&39;resolve:成功回调函数&39;) },function(){ console.log(&39;reject:失败回调函数&39;)})
promise联合国戒指 promise promise戒指什么意思

文章插图
传递参数:
const promise = new Promise((resolve, reject) => { setTimeout(reject,1000,&39;我是value值&39;);})promise.then((value) => { console.log(&39;resolve:&39; + value)}).catch((value) => { console.log(&39;reject:&39;+ value)})//第一种,单个传值是无效的const promise = new Promise((resolve, reject) => { setTimeout(resolve,1000,&39;参数1&39;,&39;参数2&39;);})promise.then((value1,value2) => { console.log(&39;value1:&39; + value1) //value1:参数1 console.log(&39;value2:&39; + value2) //value2:undefined}).catch((value) => { console.log(value)})//第二种:数组传值const promise = new Promise((resolve, reject) => { setTimeout(resolve,1000,[&39;参数1&39;,&39;参数2&39;]);})promise.then((value1) => { console.log(&39;value1:&39; + value1) //value1:参数1,参数2}).catch((value) => { console.log(value)})Promise.prototype.then方法:链式操作