Promise 常用API
来源:互联网 发布:360强力粉碎软件 编辑:程序博客网 时间:2024/04/29 05:07
1. Promise#then
promise.then(onFulfilled, onRejected);
示例:Promise#then
var promise = new Promise(function(resolve, reject) { resolve("传递给then的值");});promise.then(function(value) { console.log(value);}, function(error) { console.error(error);});
这段代码创建一个promise对象,定义了处理onFulfilled和onRejected的函数(handler),然后返回这个promise对象。这个promise对象会在变为resolve或者reject的时候分别调用相应注册的回调函数。
(1)当handler返回一个正常值的时候,这个值会传递给promise对象的onFulfilled方法。
(2)定义的handler中产生异常的时候,这个值则会传递给promise对象的onRejected方法。
2. Promise#catch
promise.catch(onRejected);
等价于promise.then(undefined, onRejected)
的语法糖。
示例:Promise#catch
var promise = new Promise(function(resolve, reject) { resolve("要传递给then的值");});promise.then(function(value) { console.log(value);}).catch(function(error) { console.log(error);});
3. Promise.resolve
Promise.resolve(promise);Promise.resolve(thenable);Promise.resolve(object);
示例:Promise.resolve
var taskName = "task1";asyncTask(taskName).then(function(value) { console.log(value);}).catch(function(error) { console.error(error);});function asyncTask(name) { return Promise.resolve(name).then(function(value) { return "Done! " + value; })}
根据接收到的参数不同,返回不同的promise对象。
(1)接收到promise对象参数的时候:返回的还是接收到的promise对象
(2)接收到thenable类型的对象的时候:返回一个新的promise对象,这个对象具有一个 then 方法
(3)接收的参数为其他类型的时候(包括JavaScript对或null等):返回一个将该对象作为值的新promise对象
4. Promise.reject
Promise.reject(object)
示例:Promise.reject
var r = Promise.reject(new Error("error"));console.log(r === Promise.reject(r)); // falsevar r = Promise.resolve("test");console.log(r === Promise.resolve(r)); // true
和 Promise.resolve不同的是,即使Promise.reject接收到的参数是一个promise对象,该函数也还是会返回一个全新的promise对象。
5. Promise.all
Promise.all(promiseArray)
示例
var p1 = Promise.resolve(1), p2 = Promise.resolve(2), p3 = Promise.resolve(3);Promise.all([p1, p2, p3]).then(function(results) { console.log(results); // [1, 2, 3]});
生成并返回一个新的promise对象。
参数传递promise数组中所有的promise对象都变为resolve的时候,该方法才会返回, 新创建的promise则会使用这些promise的值。
如果参数中的任何一个promise为reject的话,则整个Promise.all调用会立即终止,并返回一个reject的新的promise对象。
6. Promise.race
Promise.all(promiseArray)
示例
var p1 = Promise.resolve(1), p2 = Promise.resolve(2), p3 = Promise.resolve(3);Promise.all([p1, p2, p3]).then(function(results) { console.log(results); // 1});
生成并返回一个新的promise对象。
参数 promise 数组中的任何一个promise对象如果变为resolve或者reject的话, 该函数就会返回,并使用这个promise对象的值进行resolve或者reject。
参考地址:JavaScript Promise迷你书(中文版)
- Promise 常用API
- Promise概念和常用api
- Promise API
- JavaScript Promise API
- JavaScript Promise API
- Promise系列06:Promise API Reference
- 浅谈ES6的 promise API
- Promise , fetch Api ,blueBird,Q,When
- nodejs--promise之bluebird部分API
- promise
- Promise
- Promise
- Promise
- Promise
- Promise
- Promise
- promise
- promise
- Poj1185&Poj2411 状压dp(from Poj2663)
- Android插件化开发
- wireshark数据包格式的基本介绍
- 每天laravel-20160810| Container -13
- 通过ajax给js成员变量赋值问题
- Promise 常用API
- index.html
- SAP Business One 对象类型大全 (Object Type)
- 通过adb 发送broadcast 调试新加的command的系统功能
- kafka 简介
- SimpleDateFormat问题随记
- 未完成的作业
- 保存、另存为地图文件
- javaweb学习总结(三十九)——数据库连接池