Beim Aufruf einer Funktion in der Tabelle ein Promise zurückgeben: Versuchen Sie, einen Promise-Funktionsaufruf zurückzugeben
P粉340264283
P粉340264283 2023-09-05 14:36:01
0
2
575
<p><pre class="brush:php;toolbar:false;">let data = [223, 34, 456, 56, 67]; Funktion getDataFromApi(paramfromTableCell){ let postData = {data: paramfromTableCell} let result = apiResponse(url, 'post', postData).catch((err => console.log(err))) Ergebnis zurückgeben; } data.map((value)=>{ zurückkehren( <th>{getDataFromApi(value)}</th> ) })</pre> <p>Eine Funktion in einer Tabellenzelle aufrufen, aber ein Promise zurückgeben. Wenn die Funktion aufgerufen wird, nimmt sie einen Parameter und gibt den Namen basierend auf der Nummer zurück, aber sie gibt ein Versprechen zurück. Gibt es eine Möglichkeit, dieses Problem zu lösen? </p>
P粉340264283
P粉340264283

Antworte allen(2)
P粉970736384

你必须await这个promise来获取结果。否则你只会得到这个promise。所以在你的map函数中添加async,然后使用await

data.map(async (value)=>{
  return(<th>{await getDataFromApi(value)}</th>
)
P粉832212776

看起来你正在使用React。你需要将你的响应保存到React的状态中。

这是一个示例代码,它应该是这样的(未经测试):

let data = [223, 34, 456, 56, 67];
const [responses, setResponses]  = useState([]);

useEffect(() => {
   const getAllResponses = () => Promise.all(
       data.map(val =>  getDataFromApi(val))
   );

   getAllResponses().then(responses => setResponses(responses));
}, [data])

function getDataFromApi(paramfromTableCell){
    let postData = {data : paramfromTableCell}
    return apiResponse(url, 'post', postData).catch((err => console.log(err)))
}

responses.map((value)=>{
 return(
       <th>{value}</th>
 )
})
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage