Прежний кодasync function getUsers(names) { // *
let jobs = [];
for(let name of names) {
let job = fetch(`https://api.github.com/users/${name}`).then(
successResponse => {
if (successResponse.status != 200) {
return null;
} else {
return successResponse.json();
}
},
failResponse => { // **
return null;
}
);
jobs.push(job);
}
let results = await Promise.all(jobs); // ***
return results;
}
Исправления:
* Ключевое слово async после исправления *** излишне.
** Аргумент failResponse излишен, так как не используется, также следует вынести ошибку в отдельный catch, чтобы
перехватывать ошибки возникшие response.json().
*** Переменная result излишня, также излишне ключевое слово await.
Верны ли исправления?
Исправленный кодfunction getUsers (userNames) {
let requests = userNames.map(userName =>
fetch(`https://api.github.com/users/${userName}`)
.then(successResponse => successResponse.status === 200 ? successResponse.json() : null)
.catch(() => null));
return Promise.all(requests);
}