我正在使用Axios调用具有进度指示器的api端点。我想将onUploadProgress转换为生成器。
是否有转换此代码的方法
setProgress({ state: 'syncing', progress: 0 });
await axios.post(uri.serialize(parsedURI), body2, {
headers: { session_id: sessionId },
onUploadProgress: (progress) => {
setProgress({ state: 'syncing', progress: progress.loaded / progress.total });
},
});
setProgress({ state: 'syncing', progress: 1 });
变成这样]
yield { state: 'syncing', progress: 0 }; await axios.post(uri.serialize(parsedURI), body2, { headers: { session_id: sessionId }, onUploadProgress: (progress) => { yield { state: 'syncing', progress: progress.loaded / progress.total }; }, }); yield { state: 'syncing', progress: 1 }; await new Promise(resolve => setTimeout(resolve, 100));
问题在于onUploadProgress内部的yield,我想可能有一种使用它的方法,例如当您要将回调转换为您使用的promise时
new Promise(resolve => fn(resolve));
也许有一些有效的方法可用于类似发电机的发电机
new Generator(next => fn(next));
我正在使用Axios调用具有进度指示器的api端点。我想将onUploadProgress转换为一个生成器。有没有办法转换此代码setProgress({state:'...
您可以在进度处理程序中更新局部变量,并在循环中对其进行轮询,直到请求完成为止。这是草图: