Ошибка" Uncaught (in promise) undefined " при использовании with=location в запросе API графика Facebook
в настоящее время я разрабатываю веб-приложение с API Facebook Graph.
моя текущая цель-получить только сообщения, которые имеют прикрепленное местоположение.
в то время как получение сообщений с и без местоположения уже работает, я не могу получить только сообщения с местоположением.
запрос, который извлекает оба типа выглядит следующим образом:'/me/feed?fields=id,name,message,picture,place,with_tags&limit=100&with=location'
запрос, который должен извлекать только сообщения с местоположением, выглядит так: /me/feed?fields=id,name,message,picture,place,with_tags&limit=100&with=location
проблема у меня в том, что с параметром &with=location
Я получаю сообщение об ошибке Uncaught (in promise) undefined
в этой части мой код:
if (response.paging && response.paging.next) {
recursiveAPICall(response.paging.next);
} else {
resolve(postsArr);
}
} else {
// Error message comes from here
reject();
}
Log показывает следующее:
DEBUG: -------------------------------
DEBUG: Ember : 2.4.5
DEBUG: Ember Data : 2.5.3
DEBUG: jQuery : 2.2.4
DEBUG: Ember Simple Auth : 1.1.0
DEBUG: -------------------------------
Object {error: Object}
error: Objectcode:
code: 1
1fbtrace_id: "H5cXMe7TJIn"
message: "An unknown error has occurred."
type: "OAuthException"
__proto__: Object
__proto__: Object
Uncaught (in promise) undefined
есть ли у кого-нибудь возможное решение для этого?
для получения дополнительной информации о том, как выглядит код, см. my предыдущий вопрос.
2 ответов
ошибка говорит вам, что есть ошибка, но вы не поймаете ее. Это, как вы можете поймать его:
getAllPosts().then(response => {
console.log(response);
}).catch(e => {
console.log(e);
});
вы также можете просто поставить console.log(reponse)
в начале вашей функции обратного вызова API в ней определенно есть сообщение об ошибке от API Graph.
дополнительная информация: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch
или с async / await:
//some async function
try {
let response = await getAllPosts();
} catch(e) {
console.log(e);
}
на reject
фактически принимает один параметр: это исключение, которое произошло в вашем коде, которое вызвало отклонение обещания. Итак, когда вы звоните reject()
значение исключении undefined
, следовательно," неопределенная " часть в ошибке, которую вы получаете.
вы не показываете код, который использует обещание, но я думаю, что это что-то вроде этого:
var promise = doSth();
promise.then(function() { doSthHere(); });
попробуйте добавить пустой вызов сбоя, например:
promise.then(function() { doSthHere(); }, function() {});
это предотвратит ошибку появиться.
тем не менее, я бы хотел позвонить reject
только в случае фактической ошибки, а также... наличие пустых обработчиков исключений-не лучшая практика программирования.