0

При вызове GetByUsername выполнение переходит к блокировке блока , но err undefined. Апи работает, потому что эквивалентный код стиля обеда .then(). Then(). Done() работает, но я бы лучше написал в этом стиле async/wait. Как я могу его отладить?response-native async fetch, undefined error

var cli = { 
    GetByUsername: async function(username) { 
     try { 
     let resposne = await fetch(`http://api.example.com?username=${username}`); 
     return response; 
     } catch(err) { 
     debugger; 
     } 
    } 
} 

редактировать: Глядя на react-native's package.json, кажется, что реализация выборки используется node-fetch и babeljs в transpiler.

+0

Как вы transpiling это то, что обещание библиотека и что 'fetch' polyfill вы используете? Что случилось с неопределенностью 'err'? Какова ценность 'err', если вы используете обещание' .catch() '? – Bergi

+0

Спасибо, хорошие очки. для первого вопроса. Я обновил свой вопрос: «Что не так, когда ошибка не определена?» Это я не знаю, почему это провалилось. «Какова ценность err, если вы используете обещание .catch()?», Если я использую обещание .then(). Catch(), код работает хорошо, ничего не поймает. – alfonsodev

ответ

0

Я обнаружил, что проблема была ошибкой с ошибкой, поэтому я возвращал несуществующую переменную, из-за которой выполнение заканчивается в блоке catch с неопределенной ошибкой.

+0

Это должно было бросить 'ReferenceError', а не неопределенный ??? – Bergi

+0

Я бы ожидал, что ReferenceError на переменной «response», , но я получаю сообщение «Uncaught ReferenceError: err не определено», поэтому я сосредоточился на том, почему err не определен, не видя, что этот ответ не был определен на первом месте. – alfonsodev

2

попробовать это:

const response = await fetch(`http://api.example.com?username=${username}`); 
 
const jsonData = await response.json(); 
 
// then you can use jsonData as you want