它是一个es6的语法:Promise () 通过链式调用让代码看起来更加整洁。可以再客户端使用,也可以在服务器使用
它能有效解决回调深渊的问题
consol.dir(promise)//打印函数到控制台
1、promise()常用方法:
reject() -异步操作执行错误
resolve() -异步操作执行成功方法
then() -解决了大量使用回调函数的问题
2、Promise每个异步操作都可以获取它的状态
pending(进行中)
fulfilled(成功)
reject(失败)
状态无法手动改变,只能读取
3、大概语法
new Promise(function (resolve,reject){
if(成功){
resolve(result)
}else {
reject(error)
}
4、对比嵌套查询
Promise:
let p=new Promise(function (resolve, reject){
}).then(function (data){
}).then(function (data){
})
嵌套查询:
function test(arg1,function(data1){
function fun2(arg2,function(data2){
})
})
promise的特点:
1、一旦创建就无法取消,立即执行
2、如果不设置回调函数,它的内部错误就不会反应到外部
3、当处于pending(进行中)状态的时候,无法判断进展到那个阶段的
3、promise的使用:
perpol(per){
return new Promise(function(resolve,reject){
dbpoll.connect(dbsql.admin.querylogin,
per,
(err, data)=>{
if(!err){
resolve(data)
}else{
reject(err)
}
})
}
)}
}