reactjs - 如何在 react redux 中从 async.queue 调度操作?
问题描述
当某个上传音频的任务开始时,我需要从 async.queue 调度操作。异步队列用于同时上传文件。无法从以下代码中的 req.on 函数分派。
let q = async.queue(function (task, callback) {
uploadFileOnS3(audioName, task).then(function (audioS3) {
console.log("s3 value is", audioS3);
let params = { Key: audioName, Body: task.file, ACL: 'public-read' };
let req = audioS3.upload(params);
req.on('httpUploadProgress', function (evt) {
let percentage = (evt.loaded / evt.total) * 100;
console.log("percentage value is", percentage);
dispatch({type: t.PERCENTAGE, payload : percentage})
});
});
}, 1);
export const audioUpload = audioObj => async dispatch => {
q.push(audioObj);
};
解决方案
只需在队列中发送带有参数的“调度”对象。
q.push({ audioName, audioObj, dispatch },()=>{
})
在队列里面你可以做这样的事情
let q = async.queue(async function (task, callback) {
uploadFileOnS3(audioName, task).then(function (audioS3) {
console.log("s3 value is", audioS3);
let params = { Key: audioName, Body: task.file, ACL: 'public-read' };
let req = audioS3.upload(params);
req.on('httpUploadProgress', function (evt) {
let percentage = (evt.loaded / evt.total) * 100;
console.log("percentage value is", percentage);
task.dispatch({type: t.PERCENTAGE, payload : percentage}) //here
});
});
}, 1);
推荐阅读
- angular - 如何以角度在动态组件中绑定和发出动态事件
- excel - 如何在 Excel 中使用起始编号和结束编号在 Excel 中创建一列数字?
- python - CNN 模型没有考虑训练数据集中的所有数据,而是只考虑部分数据,我在所有时期都得到完全相同的准确度
- css - 身高:100% 不被继承
- oracle - SQL Developer:PLSCOPE_SETTINGS“无”和“全部”之间的区别?
- function - 为什么 Lua 表达式中没有匿名函数?
- android - 实施 Google Assistant 语音命令支持
- python - 如何在句子中颠倒位置?
- javascript - 我的节点 js 代码对关键字“require”没有影响
- html - 如何制作嵌入式视频的直接下载链接