异步编程 也是一个构造函数
那么什么是异步呢
不会影响其他的进程(如果执行程序某一个程序出错下面的程序不受影响)
new Promise(function(resolve,reject){
//resolve 一切正常执行的函数
//reject 出现错误的时候调用的函数
})
里面的两个参数实际上就是函数
promise里面的三个方法
- then() 可以将参数中的函数添加到当前的正常执行序列
- catch() 代表promise的异常处理序列
3.finally() promise执行到最后一定会执行的序列
回调地狱
写js的时候有些情况逻辑比较复杂,嵌套比较多
回调函数的层层嵌套叫回调地狱
原生写法
var fn = function(value,callback){
// value是输出的内容,callback是回调
setTimeout(function(){
console.log(value);
callback();
},1000)
}
调用
fn("first",function(){
fn("second",function(){
fn("third",function(){
console.log("走完了");
})
})
})
promise解决回调地狱
var fn = function(name){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log(name);
resolve();
},1000)
})
}
fn("first").then(function(){
return fn("second");
}).then(function(){
return fn("third");
}).then(function(){
return fn("forth");
}).then(function(){
console.log("end");
})
网友评论