gpt4 book ai didi

javascript - Google SignOut 过程中的错误未捕获错误 : nb JS

转载 作者:行者123 更新时间:2023-11-30 19:26:43 26 4
gpt4 key购买 nike

为了重构我的代码,我编写了如下的 google SignOut 函数

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)

但是我是这样实现的

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";
}
});
});
});
});
};

虽然看起来不太好,但它工作正常。如果有人能告诉我我以前的实现有什么问题以及什么不起作用。

最佳答案

问题出在这一行gApiAuth.init().then(doGoogleLogout(gApiAuth));.

对于 promise 的成功处理程序,您需要传递函数引用而不是直接调用函数。这里 doGoogleLogout(gApiAuth) 将在 promise 被解决之前被调用。将其更改为 gApiAuth.init().then(()=>doGoogleLogout(gApiAuth))

从这里阅读更多信息 link

关于javascript - Google SignOut 过程中的错误未捕获错误 : nb JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56825671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com