gpt4 book ai didi

javascript - 从 gapi.client.load 捕获错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:22 25 4
gpt4 key购买 nike

我将 Google App Engine 与 Java 和 Google Cloud Endpoints 结合使用。在我的 JavaScript 前端,我使用这段代码来处理初始化,as recommended :

var apisToLoad = 2;
var url = '//' + $window.location.host + '/_ah/api';
gapi.client.load('sd', 'v1', handleLoad, url);
gapi.client.load('oauth2', 'v2', handleLoad);
function handleLoad() {
// this only executes once,
if (--apisToLoad === 0) {
// so this is not executed
}
}

gapi.client.load 失败时,如何检测和处理?目前,我在 JavaScript 控制台上收到一条错误消息:Could not fetch URL: https://webapis-discovery.appspot.com/_ah/api/static/proxy.html)。也许那是我的错,或者这可能是 Google 端的一个临时问题——现在这不是我关心的问题。我正试图利用这个机会在客户端很好地处理此类错误。

那么 - 我该如何处理呢? handleLoad 没有为出错的调用执行,gapi.client.load 似乎没有单独的错误回调(参见 the documentation ),它实际上并没有抛出错误(仅将其打印到控制台),并且不返回任何内容。我错过了什么?到目前为止,我唯一的想法是设置一个超时,如果在 X 秒后初始化没有完成,则假设有一个错误,但这显然不太理想。

编辑:

这个问题再次出现,这次是在尝试加载 oauth 内容时出现消息 ERR_CONNECTION_TIMED_OUT(这绝对是我无法控制的)。同样,我并不是要修复错误,它只是确认它值得检测和优雅地处理。

最佳答案

我知道这是旧的,但我偶然发现了这个。您可以轻松地测试失败(至少现在是这样)。

代码如下:

gapi.client.init({}).then(() => {
gapi.client.load('some-api', "v1", (err) => { callback(err) }, "https://someapi.appspot.com/_ah/api");
}, err, err);

function callback(loadErr) {
if (loadErr) { err(loadErr); return; }
// success code here
}

function err(err){
console.log('Error: ', err);
// fail code here
}

Example

关于javascript - 从 gapi.client.load 捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24563863/

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