Javascript 使用异步函数REACT createContext返回axios数据

Javascript 使用异步函数REACT createContext返回axios数据,javascript,reactjs,Javascript,Reactjs,我正在创建React上下文,但它返回一个承诺。在playlitycontext.js文件中,我有以下代码: import React,{useffect}来自“React”; 从“../services/YouTube”导入YouTube; const playlistdata=YouTube.getPlaylists(); //console.log(播放列表数据); const playlistadacontext=React.createContext(playlistdata); co

我正在创建React上下文,但它返回一个承诺。在playlitycontext.js文件中,我有以下代码:

import React,{useffect}来自“React”;
从“../services/YouTube”导入YouTube;
const playlistdata=YouTube.getPlaylists();
//console.log(播放列表数据);
const playlistadacontext=React.createContext(playlistdata);
const playlistadaprovider=(道具)=>{
const[playlists,setPlaylists]=React.useState(playlistdata);
useffect(()=>{
const playlistdata=YouTube.getPlaylists();
console.log(播放列表数据);
设置播放列表(播放列表数据);
},[])
返回{props.children};
}

导出{playlistadacontext,playlistadaprovider}
setPlaylists
YouTube.getPlaylists()
之后立即调用

您应该能够使用
。然后()

您还可以在
useffect()中创建异步函数


getPlaylists
是一个
async
函数,而
async
函数总是返回承诺。这就是你的意思吗?
useEffect(() => {
  const playlistsData = YouTube.getPlaylists();
  console.log(playlistsData); // playlistsData is not fetched
  setPlaylists(playlistsData);
},[])
YouTube.getPlaylists().then(response => {
  console.log(response);
  setPlaylists(response);
});
useEffect(() => {
  const getYTPlaylist = async () => {
    const playlistsData = await YouTube.getPlaylists();
    console.log(playlistsData);
    setPlaylists(playlistsData);
  }
  
  getYTPlaylist();
},[])