javascript - 点击登录按钮,如何先发起 LOGIN_PENDING, 然后在发起 LOGIN_FULFILLED 的
本文介绍了javascript - 点击登录按钮,如何先发起 LOGIN_PENDING, 然后在发起 LOGIN_FULFILLED 的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
https://github.com/Justin-lu/...
请问有谁看过 github 上这个脚手架啊,里边有一块我看不不太懂,点击登录按钮,他是如何先发起 LOGIN_PENDING, 然后在发起 LOGIN_FULFILLED 的,能说详细点儿么,谢谢。
解决方案
使用了JS的promise对象进行流程的控制
下面是一个简单的例子
var LOGIN_PENDING=function(){
console.log("~~~LOGIN_PENDING~~~~");
};
var LOGIN_FULFILLED=function(responseData){
console.log("~~~LOGIN_FULFILLED~~~~%s",responseData);
};
var LOGIN_REJECTED=function(reason){
console.log("~~~LOGIN_REJECTED~~~~%s",reason);
};
new Promise(function(resolve,reject){
LOGIN_PENDING();//调用pending
setTimeout(function(){//你的loginajax请求
var t=Date.now();
if(t%2==0){
resolve("LOGIN_DONE");//当请求完成后调用resolve,其中返回值值可以自己定义吗,例如可将返回的response对象作为参数或解析后的结果等
}else{
reject("You are poor!");//当请求失败时调用reject
}
},1000);
}).then(function onFulfilled(responseValue){
LOGIN_FULFILLED(responseValue);//对resolve传入的参数执行相应的逻辑
},function onReject(reason){//处理reject传入的参数
LOGIN_REJECTED(reason);
});
这篇关于javascript - 点击登录按钮,如何先发起 LOGIN_PENDING, 然后在发起 LOGIN_FULFILLED 的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文