ES6 Promise的使用
栏目: JavaScript · 发布时间: 6年前
内容简介:首先,我们Promise作为替代回调函数执行,作为异步操作的处理方法之一,是解决JS异步执行时候回调函数嵌套回调函数这一问题的方法,它更简洁地控制函数执行流程一般promise有三种状态:pending(等待态),fulfiled(成功态),rejected(失败态);
首先,我们 为什么要用Promise 语法?
Promise作为替代回调函数执行,作为异步操作的处理方法之一,是解决JS异步执行时候回调函数嵌套回调函数这一问题的方法,它更简洁地控制函数执行流程
一般promise有三种状态:pending(等待态),fulfiled(成功态),rejected(失败态);
常见写法为:
let p = new Promise(resolve, reject){}.then();
通常,我们处理异步请求,会使用回调函数嵌套回调函数
例如:
fn("a", function(a) {
fn1("b", function(b) {
fn2("c", function(c) {
fn3("d", function(d) {
alert("回调成功,结果为:"a+b+c+d")
})
})
})
})
但我们发现这样写的代码可读性并不高
如果使用promise语法,则更加符合阅读习惯,只需要在then函数中写处理逻辑即可
new Promise(function(resolve , reject) {
resolve(1);
}).then(function(val) {
console.log(val);
return new Promise(function(resolve , reject) {
resolve(2);
});
}).then(function(val) {
console.log(val);
return new Promise(function(resolve , reject) {
resolve(3);
});
}).then(function(val) {
console.log(val);
return new Promise(function(resolve , reject) {
resolve(4);
});
}).then(function(val) {
console.log(val);
});
运行结果为:
接下来模拟在实际项目开发中,在异步请求完数据后处理数据的情况,我们在这里用settimeout来模拟异步请求
let mypromise = new Promise(function(resolve, reject){
setTimeout(function(){
resolve("成功!");
}, 1000);
});
mypromise.then(function(successMessage){
console.log(successMessage);
});
运行结果为:
我们可以看到这里的“成功!”在运行一秒后执行
常用API
(1) new Promise
new Promise(function(resolve, reject){
});
(2) PromiseObj.then(resolveFn,rejectFn)
resolveFn:Promise对象成功的回调处理函数
rejectFn:Promise对象失败的回调处理函数
new Promise((resolve,reject)=>{
}).then((resolveData)=>{
},(rejectErr)=>{
})
(3) PromiseObj.catch()
new Promise((resolve,reject)=>{
}).catch(err=>{
console.log(err)
})
(4)PromiseObj.resolve()
Promise.resolve(123).then(data=>{
console.log(data)
})
以上所述就是小编给大家介绍的《ES6 Promise的使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- RecyclerView使用指南(一)—— 基本使用
- 如何使用Meteorjs使用URL参数
- 使用 defer 还是不使用 defer?
- 使用 Typescript 加强 Vuex 使用体验
- [译] 何时使用 Rust?何时使用 Go?
- UDP协议的正确使用场合(谨慎使用)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
白帽子讲浏览器安全
钱文祥 / 电子工业出版社 / 2016-3 / 79.00元
浏览器是重要的互联网入口,一旦受到漏洞攻击,将直接影响到用户的信息安全。作为攻击者有哪些攻击思路,作为用户有哪些应对手段?在《白帽子讲浏览器安全》中我们将给出解答,带你了解浏览器安全的方方面面。《白帽子讲浏览器安全》兼顾攻击者、研究者和使用者三个场景,对大部分攻击都提供了分析思路和防御方案。《白帽子讲浏览器安全》从攻击者常用技巧的“表象”深入介绍浏览器的具体实现方式,让你在知其然的情况下也知其所以......一起来看看 《白帽子讲浏览器安全》 这本书的介绍吧!