js Promise学习
2015-08-27 18:29
691 查看
js Promise
promise入参为两个成功时的执行 resolve
失败时的执行 reject
promise的状态
肯定(fulfilled) 该 Promise 对应的操作成功了
否定(rejected) 该 Promise 对应的操作失败了
等待(pending) 还没有得到肯定或者否定结果,进行中
结束(settled) 已经肯定或者否定了
promise必须实现then方法,只有实现then方法才可以取出promise里面的值
var promise = new Promise(function(resolve, reject) { resolve(1); }); promise.then(function(val) { console.log(val); // 1 });
then方法返回的不是值,而是promise,此promise需要用then方法实现之后才可以取出其中的值
var promise = new Promise(function(resolve, reject) { resolve(1); }); var aa = promise.then(function(val) { console.log(val); // 1 return val + 2; }); aa.then(function(data){ console.log(data);// 3 }); console.log(aa);//obj
此时的aa是一个promise,状态是pending
链接调用;promise的链接调用功能是非常强大,并且代码可读性也是相当的高
var promise = new Promise(function(resolve, reject) { resolve(1); }); promise.then(function(val) { console.log(val); // 1 return val + 2; }).then(function(data){ console.log(data);// 3 });
执行顺序;promise执行在后;
var promise = new Promise(function(resolve, reject) { resolve(1); }); promise.then(function(val) { console.log(val); // 1 });
console.log("first");
以上代码会先输入first,然后再输出1
如何取promise当中的值
var promise = new Promise(function(resolve, reject) { resolve(1); }); var aa = promise.then(function(val) { var res = {}, age = val + 2; res.age = age; return res; }).then(function(data) { data.name = "zhangsan"; return data; }).then(function(data) { if (data.name == "zhangsan" && data.age == 3) { data.address = "Hangzhou China"; } return data; }); aa.then(function(data) { console.log(data); }) //返回结果: [object Object] { address: "Hangzhou China", age: 3, name: "zhangsan" }
每一次实现then方法的时候,都需要将data全部组装返回,这样才可以保证最后得到的值是全部的data
参考
JavaScript Promises;
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- JavaScript拆分字符串时产生空字符的原因
- IE8开发人员工具教程(二)
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法
- PowerShell中执行Javascript的方法示例
- javascript asp教程第六课-- response方法
- javascript asp教程More About Recordsets
- javascript asp教程第十二课---session对象
- javascript asp教程创建数据库连接
- javascript asp教程错误处理