Я использую 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 };
проблемав выходной информации внутри onUploadProgress я подумал, что может быть способ использовать его, например, когда вы хотите преобразовать обратный вызов в обещание, которое вы используете
new Promise(resolve => fn(resolve));
возможно, есть какой-то действительный способ сделать это длягенераторы типа
new Generator(next => fn(next));