Javascript 如何打印post请求中的承诺值?(JS)

Javascript 如何打印post请求中的承诺值?(JS),javascript,reactjs,promise,async-await,fetch,Javascript,Reactjs,Promise,Async Await,Fetch,我一直在试图弄清楚如何访问POST请求返回的承诺值,但到目前为止,我在这里看到的解决方案我还无法弄清楚如何在不使用的功能组件中实现 我试过.stringify和.text,但没有什么不同。这仍然只是承诺 Button.jsx import React, { useState } from 'react'; import axios from 'axios'; import getResponse from '../Handler/getResponse.jsx' import getToken

我一直在试图弄清楚如何访问POST请求返回的承诺值,但到目前为止,我在这里看到的解决方案我还无法弄清楚如何在不使用
的功能组件中实现

我试过
.stringify
.text
,但没有什么不同。这仍然只是承诺

Button.jsx

import React, { useState } from 'react';
import axios from 'axios';
import getResponse from '../Handler/getResponse.jsx'
import getToken from '../Handler/getToken.jsx'
import './Button.css';

const Button = ({selectedIcon}) => {
   const [selected] = selectedIcon;
   const [xappToken] = useState(getToken());
   console.log(xappToken);

   return(
      <div className="buttonBlock">
         <span className="btn">
            <input className="btn-outline" type="button" value="Press Me" onClick={ () => getResponse(xappToken) }/>
         </span>
      </div>
   );
}

export default Button
import React,{useState}来自“React”;
从“axios”导入axios;
从“../Handler/getResponse.jsx”导入getResponse
从“../Handler/getToken.jsx”导入getToken
导入“./Button.css”;
常量按钮=({selectedIcon})=>{
const[selected]=selectedIcon;
const[xappToken]=useState(getToken());
console.log(xappToken);
返回(
getResponse(xappToken)}/>
);
}
导出默认按钮
getToken.jsx

export default async function getToken(){
   try {
     const response = await axios.post('https://api.artsy.net/api/tokens/xapp_token', {
         client_id: 'some-client-id',
         client_secret: 'some-client-secret'
     });
     console.log('if i remember correctly 
since you're getting a promise your gonna have to await the response as well.
you have to json() your response and store it into something else 
then console.log the new result
for example

const result = await response.json()
console.log(result)
导出默认异步函数getToken(){
试一试{
const response=等待axios.post('https://api.artsy.net/api/tokens/xapp_token', {
客户端id:“某个客户端id”,
客户机密:“某些客户机密”
});
console.log('如果我没记错的话
既然你得到了承诺,你也得等待答复。
您必须将响应json()保存到其他文件中
然后记录新的结果
比如说

import React, { useState, useEffect } from 'react';
import axios from 'axios';
import getResponse from '../Handler/getResponse.jsx'
import getToken from '../Handler/getToken.jsx'
import './Button.css';

const Button = ({selectedIcon}) => {
   const [selected] = selectedIcon;
   const [xappToken, setXappToken] = useState(null);
   useEffect(() => {
     getToken().then(token => setXappToken(token))
   }, [])
   console.log(xappToken)

   return(
      <div className="buttonBlock">
         <span className="btn">
            <input className="btn-outline" type="button" value="Press Me" onClick={ () => getResponse(xappToken) }/>
         </span>
      </div>
   );
}

export default Button
如果我没记错的话 既然你得到了承诺,你也得等待答复。 您必须将响应json()保存到其他文件中 然后记录新的结果 比如说

import React, { useState, useEffect } from 'react';
import axios from 'axios';
import getResponse from '../Handler/getResponse.jsx'
import getToken from '../Handler/getToken.jsx'
import './Button.css';

const Button = ({selectedIcon}) => {
   const [selected] = selectedIcon;
   const [xappToken, setXappToken] = useState(null);
   useEffect(() => {
     getToken().then(token => setXappToken(token))
   }, [])
   console.log(xappToken)

   return(
      <div className="buttonBlock">
         <span className="btn">
            <input className="btn-outline" type="button" value="Press Me" onClick={ () => getResponse(xappToken) }/>
         </span>
      </div>
   );
}

export default Button

这是因为
getToken
是一种承诺。您可以这样做:

import React, { useState } from 'react';
import axios from 'axios';
import getResponse from '../Handler/getResponse.jsx'
import getToken from '../Handler/getToken.jsx'
import './Button.css';

const Button = async ({selectedIcon}) => {
   const [selected] = selectedIcon;
   const [xappToken] = useState(await getToken());
   console.log(xappToken);

   return(
      <div className="buttonBlock">
         <span className="btn">
            <input className="btn-outline" type="button" value="Press Me" onClick={ () => getResponse(xappToken) }/>
         </span>
      </div>
   );
}

export default Button
import React,{useState,useffect}来自“React”;
从“axios”导入axios;
从“../Handler/getResponse.jsx”导入getResponse
从“../Handler/getToken.jsx”导入getToken
导入“./Button.css”;
常量按钮=({selectedIcon})=>{
const[selected]=selectedIcon;
const[xappToken,setXappToken]=useState(null);
useffect(()=>{
getToken().then(token=>setXappToken(token))
}, [])
console.log(xappToken)
返回(
getResponse(xappToken)}/>
);
}
导出默认按钮

这是因为
getToken
是一种承诺。您可以这样做:

import React, { useState } from 'react';
import axios from 'axios';
import getResponse from '../Handler/getResponse.jsx'
import getToken from '../Handler/getToken.jsx'
import './Button.css';

const Button = async ({selectedIcon}) => {
   const [selected] = selectedIcon;
   const [xappToken] = useState(await getToken());
   console.log(xappToken);

   return(
      <div className="buttonBlock">
         <span className="btn">
            <input className="btn-outline" type="button" value="Press Me" onClick={ () => getResponse(xappToken) }/>
         </span>
      </div>
   );
}

export default Button
import React,{useState,useffect}来自“React”;
从“axios”导入axios;
从“../Handler/getResponse.jsx”导入getResponse
从“../Handler/getToken.jsx”导入getToken
导入“./Button.css”;
常量按钮=({selectedIcon})=>{
const[selected]=selectedIcon;
const[xappToken,setXappToken]=useState(null);
useffect(()=>{
getToken().then(token=>setXappToken(token))
}, [])
console.log(xappToken)
返回(
getResponse(xappToken)}/>
);
}
导出默认按钮
试试这个:


    const Button = async ({ selectedIcon }) => {
        const [selected] = selectedIcon;
        const [xappToken] = useState(await getToken());
        console.log(xappToken);
    };

import React,{useState}来自“React”;
从“axios”导入axios;
从“../Handler/getResponse.jsx”导入getResponse
从“../Handler/getToken.jsx”导入getToken
导入“./Button.css”;
常量按钮=异步({selectedIcon})=>{
const[selected]=selectedIcon;
const[xappToken]=useState(wait getToken());
console.log(xappToken);
返回(
getResponse(xappToken)}/>
);
}
导出默认按钮
试试这个:


    const Button = async ({ selectedIcon }) => {
        const [selected] = selectedIcon;
        const [xappToken] = useState(await getToken());
        console.log(xappToken);
    };

import React,{useState}来自“React”;
从“axios”导入axios;
从“../Handler/getResponse.jsx”导入getResponse
从“../Handler/getToken.jsx”导入getToken
导入“./Button.css”;
常量按钮=异步({selectedIcon})=>{
const[selected]=selectedIcon;
const[xappToken]=useState(wait getToken());
console.log(xappToken);
返回(
getResponse(xappToken)}/>
);
}
导出默认按钮

我想您还需要在Button.jsx中执行异步等待:


因为getToken很好,从技术上讲是一个承诺。所以在访问它的值之前,您需要进行等待。

我想您还需要在Button中进行异步等待。jsx:


由于getToken很好,从技术上讲是一个承诺。因此,在访问该承诺的值之前,您需要进行等待。

这将不起作用。React组件无法返回承诺。这将不起作用。React组件无法返回承诺