Поэтому я пытаюсь получить некоторую информацию из базы данных, чтобы заполнить представление. Однако всякий раз, когда я пытаюсь вызвать эту информацию, я всегда получаю неопределенное значение и, следовательно, представление не заполняется.
Я смотрел на Как мне вернуть ответ от асинхронного вызова? и использовать функцию then, как уже было сказано, для угловых, но это не помогло мне исправить то, что не так.
public getMyObject (ownerId: number): Promise<MyObject[]> {
return this.httpClient.post('ObjectGivenownerID.php', `{ownerID: ${ownerId}}`)
.then(data => {
console.log(data);
return data;
})
Проблема в том, что данные всегда неопределены, поэтому, когда мое представление вызывает это для инициализации массива, оно требует разрешения как неопределенного. Я хочу спросить, если ошибка в получении данных, или в другом месте? Я довольно плохо знаком с работой с базами данных и тому подобным, поэтому объяснение и указатель в правильном направлении были бы оценены больше, чем решение «Сделал это для вас». Спасибо!
РЕДАКТИРОВАТЬ: код PHP
function get_owner($owner_id){
global $conn;
$sql = "SELECT * FROM MyObject WHERE owner_id = 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// create an array
$emparray = array();
while($row = $result->fetch_assoc()) {
$MyObject_id = $row["MyObject_id"];
$MyObject_attachments = list_attachments_by_MyObject($MyObject_id);
$row['attachments']= $MyObject_attachments;
$emparray[] = $row;
}
}echo json_encode($emparray);
return;
}
get_owner(1)
Задача ещё не решена.
Других решений пока нет …