javascript 获取请求的结果

n3h0vuf2  于 2023-03-11  发布在  Java
关注(0)|答案(2)|浏览(151)

我有这个:
file accounts.controlles.ts

import { requestT } from "src/service/request.api";

export const getaccounts = async () => {
    const response = await requestT({
        method: "GET",
        url: "/accounts",
    }); 
    return response;
};

file header.tsx

import { getaccounts } from "src/controllers/accounts.controller";

export default function Header() {

    const listaccounts =  async () => { return await getaccounts(); };
    console.log("listaccounts: ", listaccounts);

}

但我在控制台上看到了这个

listaccounts:  async ()=>{
        return (0,src_controllers_accounts_controller__WEBPACK_IMPORTED_MODULE_7__.getaccounts)();
    }

我只是想得到服务项目getaccounts,为什么我得到箭头函数???.....
我测试了getaccounts函数,我添加了console.log(response)并得到了项目,我可以做些什么来在header.tsx上得到它?

c90pui9n

c90pui9n1#

您定义的listaccounts只是一个调用另一个异步函数的异步函数。您正在打印函数定义。您从未调用实际的函数。
试着调用函数,等待它返回,然后记录结果。注意,要用这种方式调用异步函数,调用者也必须是异步的。

export default async function Header() {

    const listaccounts =  async () => { return await getaccounts(); };
    const accounts = await listaccounts();
    console.log("listaccounts: ", accounts);

}

如果你不想让Header异步,那么你可以简单地提供回调行为来在账户可用后打印账户,.then()方法很适合这个。

export default function Header() {

    const listaccounts =  async () => { return await getaccounts(); };
    listaccounts().then(accounts => {
        console.log("accounts: ", accounts);
    });
}
wecizke3

wecizke32#

你就是这么跟JS说的。
如果您希望执行其他操作,则需要调用console.log中的函数。

相关问题