当前有一个异步请求函数fetchAPI
service.tsx
export 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.tsx
effects: {
*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呢,我是什么地方写得有问题吗?