首页 > 解决方案 > 如何确定 API 作业何时完成?

问题描述

请原谅我可能有的任何误解,我是 HTTP 请求的新手。

我正在使用文件转换 API (online-convert.com) 将上传的 MIDI 文件转换为 MP3。转换过程涉及 3 个必须串行完成的 HTTP 请求,我为此使用 Fetch。

第 2 个 HTTP 请求将输入文件上传到服务器,第 3 个 HTTP 请求获取已完成的作业详细信息。问题是,如果我尝试在第二个请求完成后立即发出第三个请求,则响应表明转换过程仍在进行中并且输出尚未准备好。

我幼稚的解决方案是设置一个间隔循环,每隔 x 毫秒继续发出第 3 个请求,直到响应表明作业已完成。这感觉像是一个不自然的解决方案,我想知道是否有更好的方法来做到这一点。

抱歉,如果我的问题是针对我正在使用的 API 的,但我们将不胜感激任何建议!

标签: javascriptapies6-promisefetch-apifile-conversion

解决方案


感谢以上 Patrick Evans 的评论。我决定通过轮询而不是回调 URL 来获取已完成作业的详细信息。

我能够使用 Fetch 和 async/await 轻松实现这一点,并且发现这比为可能不需要它们的简单 Web 工具设置服务器端脚本更容易。


推荐阅读