账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    dva yield call( )无法获取到异步请求的返回数据
    • 一瓶卸妆水就足以毁你容2021-12-15 09:46
    44
    0
    当前有一个异步请求函数fetchAPIservice.tsxexport async function queryData({ id, name,}: { id: string; name: string;}): Promise<any> { let msg = await request('/api', { method: 'POST', data: {id:id,name:name}, }); if (msg.code === 200) { console.log(msg.result.records); /// 能够获取到数据 return msg.result.records; } else { message.error('获取信息失败!'); return undefined; }}model.tsxeffects: { *fetchData({ payload: { id, name } }, { call, put }) { try { const response = yield call(queryData, { id, name }); console.log(response) ////// response没有打印 if (response) { ...... } else { ...... } } catch (err) { message.error('发生错误:' + err); } }}页面调用 dispatch({ type: 'user/fetchData', payload: { id: '20d8euqf98ur9', type: '张三' } })遇到的问题:queryData请求发送成功了,能够打印数据,说明接口调用正常,但是使用yield call调用queryData最终没有直接抛出数据,response没有打印,虽然可以使用yield call(queryData, { id, name }).then(res => console.log(res))获取到数据,但是为什么这里不能够直接抛出response呢,我是什么地方写得有问题吗?
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部