嗨,我对api调用非常陌生,我开始使用axios来获得简单的卡片组!我试图做一个简单的axios调用,当我用控制台记录我的资源时,它给了我所需的信息。但是当我退还它时,它给了我Promise {<未决>}。从我所看到的,是因为它是一个异步promise,并且promise已得到解决,但是因为它是异步的,所以它在返回实际数据之前移到了下一行代码?如果我错了,请纠正我!一些澄清会很棒。预先感谢!
async function getData() {
const result = await axios('https://deckofcardsapi.com/api/deck/new/shuffle/?deck_count=1');
console.log(result.data);
return await result.data;
}
我在redux中的动作
export function getNewDeck() {
return {
type: GET_NEW_DECK,
payload: getData().then( res => {
return res.data
})
}
}
然后在我的化简器中,我的action.payload返回Promise {<未决>}
答案 0 :(得分:2)
已根据评论更新
我相信您只需要将导出功能更改为异步并等待getData:
export async function getNewDeck() {
const payload = await getData();
return {
type: GET_NEW_DECK,
payload
}
}