У меня есть следующая функция, которую я хочу вернуть Promise <число []>
async fetchCommentLines(commitDict: CommitDict): Promise < number[] > {
if (GitCommentService.isLoggedIn()) {
const commentLines = Object.values(commitDict).map(async commit => {
// ...
// do the job and return number[]
// ...
return lineNums;
});
Promise.all(commentLines)
.then(commitLines => {
return Array.prototype.concat.apply([], commitLines);
});
} else {
return [] as number[];
}
}
Во-первых, у меня есть функция ", в которой отсутствует оператор завершения, а тип возврата -не включает "undefined" "
А потом я добавил undefined (поэтому тип возвращаемого значения становится Promise <число [] | undefined> )
Но я получаю "не все пути кода возвращают значение" на этот раз.
Кажется, я не рассматриваю возможный путь кода с кодом ниже
Promise.all(...)
.then(val => {return ...})
Что мне не хватает?
Я тоже пробовал это
Promise.all(...)
.then(val => {return ...})
.catch(e => {return ...})
Но это не помогло
Примечание: Мой главныйЦель состоит в том, чтобы вернуть Обещание <номер []> , а не Обещание <номер [] |undefined>