如何从生成器函数内的回调函数调用 redux-saga 效果?
How to call a redux-saga effect from a callback function inside a generator function?
我的案例如下:
function * uploadFile({file}) {
Papa.parse(file, {
header: true,
complete: function(results) {
console.log(results.data);
//if errors => call uploadFailed action with yield
//else yield put(uploadSucceed)
}
});
}
无法调用注释代码,因为它不是生成器函数。如果我将 *
添加到回调定义中,没有错误,但它不起作用。
我也试过将它包装在另一个接受回调的函数中,但没有成功。浏览了 2 等几个答案,但这些不是我的情况。据我所知,也没有关于 Papa 和 redux 的文档。任何帮助将不胜感激。
顺便说一句:
complete: yield call(someAction) //doesn't work as well.
Promisify解析函数并使用call
效果
function parse(file) {
return new Promise((complete, error) => {
Papa.parse(file, {complete, error})
})
}
function * uploadFile({file}) {
try {
const result = yield call(parse, file);
// yield put success action
} catch(error) {
// yield put error action
}
}
我的案例如下:
function * uploadFile({file}) {
Papa.parse(file, {
header: true,
complete: function(results) {
console.log(results.data);
//if errors => call uploadFailed action with yield
//else yield put(uploadSucceed)
}
});
}
无法调用注释代码,因为它不是生成器函数。如果我将 *
添加到回调定义中,没有错误,但它不起作用。
我也试过将它包装在另一个接受回调的函数中,但没有成功。浏览了
顺便说一句:
complete: yield call(someAction) //doesn't work as well.
Promisify解析函数并使用call
效果
function parse(file) {
return new Promise((complete, error) => {
Papa.parse(file, {complete, error})
})
}
function * uploadFile({file}) {
try {
const result = yield call(parse, file);
// yield put success action
} catch(error) {
// yield put error action
}
}