使用.then()嵌套异步功能>> [

问题描述 投票:0回答:1
一段时间后重新访问Web开发人员,我想将异步函数链接在一起,而没有旧的回调地狱范例

所以我的React应用程序中有一个登录组件,带有onFinish函数(使用AntD :)]]

onFinish(values) { const req = { email: values.email, password: values.password } userService.getUser(req) .then((res) => console.log('complete', res)) .catch((err) => console.log(err)) }

而且我有一个用于连接我的API的服务层:

//In userService.js async function getUser(req) { console.log(req); axios .get("/api/user", {params: {email: req.email, password: req.password} }) .then((res) => { if (res.data) { console.log('we have data'); return res.data; } else { console.log('no data'); return res.data; } }) .catch((err) => console.log(err)); }

我希望在userService.getUser(req)功能中移至.then()之前先完成onFinish()中的两个控制台日志。当我测试无效的登录名时,控制台输出为

Object { email: "[email protected]", password: "XX" } user.service.js:27 complete undefined login.component.js:22 no data user.service.js:36

关于我缺少的任何指导?我还想了解我将最后一个第三函数saveJWTToken(user)放到哪里,甚至在userService.getUser(req)完成后仍要运行,但需要将其输出传递回onFinish()

一段时间后重新访问Web开发人员,并且我希望在不使用旧的回调地狱范例的情况下将异步函数链接在一起,所以我的React应用程序中有一个登录组件,带有onFinish ...

javascript reactjs asynchronous callback antd
1个回答
0
投票
首先,您需要从getUser函数返回请求其次,如果您在其他地方捕获错误,则无需捕获用户请求
© www.soinside.com 2019 - 2024. All rights reserved.