Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从promise获取数据_Javascript_Promise - Fatal编程技术网

Javascript 从promise获取数据

Javascript 从promise获取数据,javascript,promise,Javascript,Promise,我有一些RESTAPI,需要从promise获取数据并呈现它 const data = http.get(url) // it return the promise. // [[PromiseState]]: "fulfilled" // [[PromiseResult]]: Array(4) 我可以记录所需的数据: const data = http.get(url).then(res=> console.log(res.data)) // array in co

我有一些RESTAPI,需要从promise获取数据并呈现它

const data = http.get(url) // it return the promise.

// [[PromiseState]]: "fulfilled"
// [[PromiseResult]]: Array(4)
我可以记录所需的数据:

const data = http.get(url).then(res=> console.log(res.data)) // array in console
我读了一些教程,它总是显示如何控制日志结果,但我不需要它在concole中,我需要在组件中渲染它。这可能是一个简单的问题,但我对JS完全陌生

const ItemsList = () => {
  const data = http.get(url) //return promise. How can I get array from thid promise result?
  return (
      <ul>
        { data.map(item => {
          return (
            <ItemPreview key={item.id} item={item} />
          );
        })}
      </ul>
  )
}

export default ItemsList
const ItemsList=()=>{
const data=http.get(url)//返回承诺。如何从thid承诺结果中获取数组?
返回(
    {data.map(项=>{ 返回( ); })}
) } 导出默认项目列表

尝试异步/等待。已花费4小时完成此任务,但只会出现错误。只是不知道怎么写。有人能帮忙吗,告诉我怎么做。或者给我一个链接,在那里我可以找到如何在组件中呈现promise结果?

async
/
await
是一种方法

const ItemsList = async () => {
  const data = await http.get(url) 
  return (
      <ul>
        { data.map(item => {
          return (
            <ItemPreview key={item.id} item={item} />
          );
        })}
      </ul>
  )
}
const ItemsList=async()=>{
const data=wait http.get(url)
返回(
    {data.map(项=>{ 返回( ); })}
) }
对!或者您可以采用传统的方法:函数httpRequest(params,postData){new Promise((resolve,reject)=>{…resolve(body)…}}这取决于您对结果的处理。如果其他函数的输出依赖于当前执行的函数的输出,则使用wait。但这两种方法都是正确的。