Асинхронная выборка с ожиданием не определена

#node.js #json #async-await #fetch #svelte

#node.js #json #async-await #выборка #стройный

Вопрос:

Я использую Svelte и Node.js для моего проекта. Я пытаюсь прочитать файл JSON с URL и отобразить его на стороне клиента, который я использую Svelte.

Я использую функцию асинхронного ожидания, и она выдает мне неопределенный результат, поскольку не считывает мою функцию.

DataService.js

     let data;
;(async ()=>{
    const res = await fetch('http://localhost:3000/api/tables.json');
    data = await res.json();
    console.log(data);
})()

export const getTable = () => {
    return data;
}
  

Каталог.стройный

 <script>
import {getTable} from '../components/dataservice.js';

console.log(getTable());

</script>
  

Он неожиданно вернул мне неопределенный результат. Любая помощь будет оценена.

Комментарии:

1. Почему бы не создать getTable функцию async?

2. Поскольку выборка является асинхронной, нет гарантии, что она будет решена ко времени getTable возврата data . Так что, скорее всего, оно всегда возвращалось undefined .