我希望apiCall中的值可以在storedApiCall函数中捕获,然后将该值传递给loginHandle生成器。所以问题是json等于undefined
function* storedApiCall(name,route,kwargs){
try {
const response = yield call(apiCall, route, kwargs);
} catch(e) {
console.log('exception: ' + e.message);
console.log(e);
}
}
所以我希望json的值与response
的值相同function * loginHandle(action) {
const json = yield call(storedApiCall,'name', '/api/auth/login', {username, password});
console.log('result is');
console.log(json)
}
答案 0 :(得分:0)
是的,Vladislav lhost说的是真的,json返回undefined因为storeApiCall没有返回任何内容。
function* storedApiCall(name,route,kwargs){
try {
const response = yield call(apiCall, route, kwargs);
return response;
} catch(e) {
return e.message;
console.log('exception: ' + e.message);
console.log(e);
}
}
现在它可能在json上有所作为。
答案 1 :(得分:0)
设法通过使用渠道
来实现目标export default function * rootSaga() {
chan = yield call(channel,buffers.expanding(10))
在根传奇中定义了频道并将其声明在文件的顶部
传递函数
yield put.resolve(chan,response);
接收功能
yield call(passingFunction)
const response = yield take(chan)