Promise :(登陆逻辑)
let checkLogin = function () {
return new Promise(function (resolve,reject) {
let flag = document.cookie.indexOf("userId")>-1?true:false;
// 判断是否有值如果有resolve 状态码 true为测试使用,否则reject错误
if(flag=true){
resolve({
status:0,
result:true
})
}else{
reject("error");
}
})
};
//获取用户信息 用户ID
let getUserInfo = ()=>{
return new Promise((resolve,reject)=>{
let userInfo = {
userId:"101"
}
resolve(userInfo);
});
}
//.then代替以往的回调函数 状态码为0同上判断登陆成功否则失败catch错误信息 返回登陆用户的ID
checkLogin().then((res)=>{
if(res.status==0){
console.log("login success");
return getUserInfo();
}
}).catch((error)=>{
console.log(`errrs:${error}`)
}).then((res2)=>{
console.log(`userId:${res2.userId}`)
});
//all是同时执行多个函数一起返回多个结果同vue-resource
Promise.all([checkLogin(),getUserInfo()]).then(([res1,res2])=>{
console.log(`result1:${res1.result},result2:${res2.userId}`)
})