Javascript Sapper/Svelte-如何定期提取

Javascript Sapper/Svelte-如何定期提取,javascript,svelte,sapper,svelte-3,Javascript,Svelte,Sapper,Svelte 3,如何使用Sapper定期获取数据 这是正确的方法吗 //src/routes/fetch_on_this_page.svelte <script> setInterval(async () => { //fetch here }, 3000); </script> //src/routes/fetch\u在此页面上。svelte setInterval(异步()=>{ //到这里来 }, 3000); 从“svelte”导入{onMount,o

如何使用Sapper定期获取数据

这是正确的方法吗

//src/routes/fetch_on_this_page.svelte

<script>
  setInterval(async () => {
    //fetch here
  }, 3000);
</script>
//src/routes/fetch\u在此页面上。svelte
setInterval(异步()=>{
//到这里来
}, 3000);

从“svelte”导入{onMount,onDestroy};
异步函数fetchData(){
//取回
}
const interval=setInterval(异步()=>{
fetchData();
}, 3000);
onMount(异步()=>{
fetchData();
});
onDestroy(()=>clearInterval(interval));


从“svelte”导入{onMount,onDestroy};
异步函数fetchData(){
//取回
}
const interval=setInterval(异步()=>{
fetchData();
}, 3000);
onMount(异步()=>{
fetchData();
});
onDestroy(()=>clearInterval(interval));

最简洁的方法是在
onMount
内部完成:


从“svelte”导入{onMount};
onMount(()=>{
异步函数fetchData(){…}
const interval=setInterval(fetchData,3000);
fetchData();
return()=>clearInterval(interval));
});
除了创建更少的组件级变量外,
onMount
code在服务器端渲染期间不会运行,因此所涉及的工作更少。如果需要在多个组件中执行此操作,还可以将其包装到自定义生命周期功能中:

//poll.js
从“svelte”导入{onMount};
导出功能轮询(fn,ms){
onMount(()=>{
常数间隔=设定间隔(fn,ms);
fn();
return()=>clearInterval(interval));
});
}

从'/poll.js'导入{poll};
轮询(异步函数fetchData()){
//实现就在这里
}, 3000);

最简洁的方法是在
onMount
内部完成:


从“svelte”导入{onMount};
onMount(()=>{
异步函数fetchData(){…}
const interval=setInterval(fetchData,3000);
fetchData();
return()=>clearInterval(interval));
});
除了创建更少的组件级变量外,
onMount
code在服务器端渲染期间不会运行,因此所涉及的工作更少。如果需要在多个组件中执行此操作,还可以将其包装到自定义生命周期功能中:

//poll.js
从“svelte”导入{onMount};
导出功能轮询(fn,ms){
onMount(()=>{
常数间隔=设定间隔(fn,ms);
fn();
return()=>clearInterval(interval));
});
}

从'/poll.js'导入{poll};
轮询(异步函数fetchData()){
//实现就在这里
}, 3000);

我不理解这个问题。您当然可以使用setInterval,您可能希望在组件销毁时清除它。我不理解这个问题。当然,您可以使用setInterval,您可能希望在组件销毁时清除它。
<script>
  import { onMount, onDestroy } from "svelte";

  async function fetchData() {
  //Fetch
  }

  const interval = setInterval(async () => {
    fetchData();
  }, 3000);

  onMount(async () => {
    fetchData();
  });

  onDestroy(() => clearInterval(interval));
</script>