Я рассматривал похожие вопросы в StackOverflow, но ни один из них не соответствует моей конкретной проблеме:
У меня есть функция TypeScript в сервисе Angular 6, вызывающая функцию в другом сервисе, подобную этой:
Service1:
myArray: Array<IMyInterface>
...
getArray(): Observable<IMyInterface[]> {
this.myArray= this.service2.getAnArray(1);
return Observable.of(this.myArray);
}
Service2
getAnArray(myEntityId): Array<IMyInterface> {
const myArray2: IMyInterface[] = [];
this.getConnection().then(connection => {
connection.invoke('GetEntityById', myEntityId).then((someJson: any) => {
someJson.forEach( x => myArray2.push(x));
return myArray2;
})
});
}
Это дает мне ошибку в Service2 A function whose declared type is neither 'void' nor 'any' must return a value.
Мне нужно вернуть myArray2
после разрешения connection.invoke('GetEntityById', myId)
, так как массив заполняется только после разрешения, поэтому я пытаюсь сделать это внутри then
.
Как мне это сделать?