javascript - 点击登录按钮,如何先发起 LOGIN_PENDING, 然后在发起 LOGIN_FULFILLED 的

查看:129
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆