如何在一个函数中从 2 api 获取数据并在 dialogflow 卡片实现中显示

How to get data from 2 api in one function and display in dialogflow card fulfilment

我正在使用 Dialogflow 的内联编辑器实现来显示从 API 获取的动态数据。 我尝试从 1 API 获取并且工作正常,现在我必须同时从 2 获取并在卡片中显示所有信息。

这是代码:

function GetProductAPI(agent) {
     let prodnr1 =agent.parameters.prodnr1;
const webApiUrl = 'http://www.xxxxxxx.xx/api/products/';   

//  return axios.get(webApiUrl + prodnr1, { headers: {Authorization: `TOKEN zzzzzzzzzzzzz`} })

 axios.all([
 axios.get(webApiUrl + prodnr1, { headers: {Authorization: `TOKEN zzzzzzzzzzzzz`} }),
axios.get(webApiUrl + prodnr1 + '/images', { headers: {Authorization: `TOKEN zzzzzzzzzzzzz`} })
])

 //  .then(res => {
   .then(axios.spread((user1, user2) => {
        const launchData = user1.data;
     const launchData2 = user2.data;
        agent.add(`Product number is:  ${launchData[0].ID}  . Tile is :  ${launchData[0].TITLE}, best price is : ${launchData[0].BEST_PRICE} , image url : ${launchData2[0].IMAGE_URL} `);

     agent.add(new Card({
         title: `${launchData[0].TITLE}`,
        imageUrl: 'https://www.xxxx.xxx/cache/images/product/345345345334.jpg',
        text: `${launchData[0].META_DESCRIPTION}`,
        buttonText: 'Text from api',
        buttonUrl: '${launchData[0].URL}'
      })
     );        
      }));    
}

评论的代码我只用于一个 API 调用并且运行良好,现在我尝试从 2 获取并在一个响应中使用数据不起作用。 你能帮我看看我的问题在哪里吗?

您错过了 axios.all() 前面的 return。 工作代码是 return axios.all([...])