cari

Rumah  >  Soal Jawab  >  teks badan

Kembalikan Janji apabila memanggil fungsi dalam jadual: Cuba dan kembalikan panggilan fungsi Janji

<p><pre class="brush:php;toolbar:false;">let data = [223, 34, 456, 56, 67]; fungsi getDataFromApi(paramfromTableCell){ biarkan postData = {data : paramfromTableCell} let result = apiResponse(url, 'post', postData).catch((err => console.log(err))) pulangan hasil; } data.map((value)=>{ kembali( <th>{getDataFromApi(value)}</th> ) })</pre> <p>Memanggil fungsi dalam sel jadual, tetapi ia mengembalikan Janji. Apabila memanggil fungsi, ia memerlukan satu parameter dan mengembalikan nama berdasarkan nombor, tetapi ia mengembalikan Janji. Adakah terdapat cara untuk menyelesaikan masalah ini? </p>
P粉340264283P粉340264283525 hari yang lalu570

membalas semua(2)saya akan balas

  • P粉970736384

    P粉9707363842023-09-06 12:12:35

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

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

    balas
    0
  • P粉832212776

    P粉8322127762023-09-06 00:30:22

    Nampaknya anda sedang menggunakan React. Anda perlu menyimpan respons anda ke dalam keadaan React.

    Ini adalah contoh kod, ia sepatutnya kelihatan seperti ini (belum diuji):

    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>
     )
    })

    balas
    0
  • Batalbalas