我可以处理来自 gapi.client.load 的承诺的错误吗?
Can I handle an error from the gapi.client.load's promise?
问题是否gapi.client.load returns the promise was discussed here. And as Mike Witt回答,代码:
gapi.client.load('guestbook', 'v1', undefined, '/_ah/api');
returns promise,但是没有任何错误回调函数。
我尝试处理错误:
gapi.client.load('guestbook', 'v1', undefined, '/_ah/api')
.then(
function() {
//success
},
function(error) {
//error
}
);
当我关闭端点模块时,它永远不会进入错误处理程序。我只在控制台中收到以下错误:
GET http://localhost:8080/_ah/api/static/proxy.html?jsh=m%3B%2F_%2Fscs%2Fapps-s…3DIQ%2Frt%3Dj%2Fd%3D1%2Ft%3Dzcms%2Frs%3DAGLTcCOu-PQv0yFB8pB9mX2w3nuej8rl5Q net::ERR_CONNECTION_REFUSED cb=gapi.loaded_0:163
有什么方法可以处理这个错误吗?我试图在文档中找到它,但没有成功。
此方法的语法是:gapi.client.load(API_NAME, API_VERSION, CALLBACK);
你可以看看这里 [1],这个 Whosebug 问题也可以帮助你 [2]。
'/_ah/api' 不能用作回调,因为它是用于测试和查看您的 Google 应用程序 API 的特定处理程序,例如在为移动应用程序使用端点时。
[2] Catch Error from gapi.client.load
经过一段时间我找到了答案:
gapi.client.load('guestbook', 'v1', undefined, '/_ah/api')
.then(
function(response) {
if(response && response.hasOwnProperty('error')) {
// error
} else {
// success
}
}
);
在某些错误的情况下,gapi.client.load returns 一个错误对象例如:
{error: {errors: Array[1], code: 404, message: "Not Found"}}
但它必须是 "caught" 在 .then() 而不是在 .catch()
您可以轻松地测试失败(至少现在是这样)。我很确定这就是您要找的。
代码如下:
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
}
问题是否gapi.client.load returns the promise was discussed here. And as Mike Witt回答,代码:
gapi.client.load('guestbook', 'v1', undefined, '/_ah/api');
returns promise,但是没有任何错误回调函数。
我尝试处理错误:
gapi.client.load('guestbook', 'v1', undefined, '/_ah/api')
.then(
function() {
//success
},
function(error) {
//error
}
);
当我关闭端点模块时,它永远不会进入错误处理程序。我只在控制台中收到以下错误:
GET http://localhost:8080/_ah/api/static/proxy.html?jsh=m%3B%2F_%2Fscs%2Fapps-s…3DIQ%2Frt%3Dj%2Fd%3D1%2Ft%3Dzcms%2Frs%3DAGLTcCOu-PQv0yFB8pB9mX2w3nuej8rl5Q net::ERR_CONNECTION_REFUSED cb=gapi.loaded_0:163
有什么方法可以处理这个错误吗?我试图在文档中找到它,但没有成功。
此方法的语法是:gapi.client.load(API_NAME, API_VERSION, CALLBACK);
你可以看看这里 [1],这个 Whosebug 问题也可以帮助你 [2]。
'/_ah/api' 不能用作回调,因为它是用于测试和查看您的 Google 应用程序 API 的特定处理程序,例如在为移动应用程序使用端点时。
[2] Catch Error from gapi.client.load
经过一段时间我找到了答案:
gapi.client.load('guestbook', 'v1', undefined, '/_ah/api')
.then(
function(response) {
if(response && response.hasOwnProperty('error')) {
// error
} else {
// success
}
}
);
在某些错误的情况下,gapi.client.load returns 一个错误对象例如:
{error: {errors: Array[1], code: 404, message: "Not Found"}}
但它必须是 "caught" 在 .then() 而不是在 .catch()
您可以轻松地测试失败(至少现在是这样)。我很确定这就是您要找的。
代码如下:
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
}