transcodeFunc = async (data, type, id) => {
let { timer } = this.state
clearTimeout(timer)
let state;
let res = await getFilsStatus(data.path);
if (res.success) {
if (res.body.progress == -1) {
state = -1; //转码失败
Toast.info('视频转码失败,请重新上传!', 1);
let uploadQueue = this.state.uploadQueue.filter(v => v.id != id);
// uploadQueue = uploadQueue.map(d=>{
// if(d.id === id){
// if (d.id === id) {
// d.state = -1
// d.transcodePercent = res.progress;
// return d;
// } else {
// return d;
// }
// }
// })
this.setState({
uploadQueue: uploadQueue
});
} else if (res.body.progress !== 100) {
state = 4;
timer = setTimeout(async () => {
this.transcodeFunc(data, type, id).then(res => {
console.log(res.state) //打印是 4, 4 ,5 5代表最后成功
let newUploadQueue = this.state.uploadQueue.map(d => {
if (d.id === id) {
d.state = res.state
d.transcodePercent = res.progress;
return d;
} else {
return d;
}
});
this.setState({
uploadQueue: newUploadQueue //但是这里 state一直是5 按道理 应该也是 4, 4 5
});
})
}, 500)
}
else {
state = 5;
if (type === 'audio') {
let text = res.body.filename;
let url = res.body.httpTrancodePath;
this.handleInsertAudio(text, url, id);
} else if (type === 'video') {
let text = res.body.filename;
let url = res.body.httpTrancodePath;
let thumb = res.body.thumb;
this.handleInsertVideo(text, url, id, thumb);
}
}
}
return { state, progress: res.body.progress }
}
this.setState的时候 为什么 里面的state一直是5 而不是4,4,5