Javascript Google注销过程中出错未捕获错误:nb JS
为了使我的代码重构,我编写了如下googlesignout函数Javascript Google注销过程中出错未捕获错误:nb JS,javascript,google-login,Javascript,Google Login,为了使我的代码重构,我编写了如下googlesignout函数 function googleSignOut() { if (typeof module_google_login == 'undefined') { return false; } gapi.load('auth2', function () { var gApiAuth = gapi.auth2; gApiAuth.init().then(doGoogleL
function googleSignOut() {
if (typeof module_google_login == 'undefined') {
return false;
}
gapi.load('auth2', function () {
var gApiAuth = gapi.auth2;
gApiAuth.init().then(doGoogleLogout(gApiAuth));
});
};
function doGoogleLogout(gApiAuth) {
console.log(gApiAuth);
var googleAuth = gApiAuth.getAuthInstance();
googleAuth.signOut().then(function () {
$.ajax({
type: 'POST',
url: '/account/logout/',
success: function () {
auth2.disconnect();
window.location = "/account";
}
});
});
}
但是它在控制台中给出了这样一个错误
Uncaught Error: nb
at tE (cb=gapi.loaded_0:201)
at jF.<anonymous> (cb=gapi.loaded_0:248)
at new _.C (cb=gapi.loaded_0:123)
at jF.BT (cb=gapi.loaded_0:248)
at Ay.Qv.a.<computed> [as signOut] (cb=gapi.loaded_0:227)
at doGoogleLogout (main.js:48)
at main.js:41
at platform.js:18
at Sa (platform.js:10)
at Y (platform.js:18)
然后,它的工作很好,虽然它看起来不那么好。如果有人能告诉我以前的实现有什么问题,哪些不起作用。问题在于这一行
gApiAuth.init().then(dogoogelogout(gApiAuth))代码>
要使promise处理程序成功,您需要传递函数引用,而不是直接调用函数。在解决承诺之前,将在此处调用doGoogleLogout(gApiAuth)
。将其更改为gApiAuth.init()。然后(()=>dogoogelogout(gApiAuth))
阅读更多关于此的信息
function googleSignOut() {
if (typeof module_google_login == 'undefined') {
return false;
}
gapi.load('auth2', function () {
gapi.auth2.init().then(function () {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
$.ajax({
type: 'POST',
url: '/account/logout/',
success: function () {
window.location = "/account";
}
});
});
});
});
};