const getDataFromServer = async () => {
    var response = setInterval(()=> {
        var w = axios.get('/yet')
        if(w.data === 'done') {
            nextStep();
            clearInterval(response)
        }
    }, 1000);
};

"这段代码所做的就是不断询问服务器是否已经完成了处理(在我的例子中,这是使用python、flask.的文本到图像的生成).(每秒钟),一旦它得到‘完成’响应,它应该立即停止询问,并继续下一步(它是表单向导风格的Reaction应用程序)."我在开发人员工具中判断了浏览器的网络选项卡,响应是正确的(在过程完成后更改为‘完成’),但它不会进入下一步,也不会停止询问.

I just need this axios.get to stop as soon as it gets 'done' response.

推荐答案

我非常确定axios.get返回的是Promise,所以w变量实际上是Promise对象,而不是响应.你可以试试这样的东西.

const getDataFromServer = () => {
   const interval = setInterval(async () => {
        const w = await axios.get('/yet');

        if (w.data === 'done') {
            nextStep();
            clearInterval(interval);
        }
    }, 1000);
}

另见关于应许的MDN page条.

Javascript相关问答推荐

如何使用JavaScript向html元素添加样式

无法在page. evalve()内部使用外部函数

禁用从vue.js 2中的循环创建的表的最后td的按钮

对象和数字减法会抵消浏览器js中的数字

使用续集和下拉栏显示模型属性

JQuery. show()工作,但. hide()不工作

colored颜色 检测JS,平均图像 colored颜色 检测JS

配置WebAssembly/Emscripten本地生成问题

函数返回与输入对象具有相同键的对象

变量的值在Reaction组件中的Try-Catch语句之外丢失

类构造函数不能在没有用With Router包装的情况下调用

同一类的所有div';S的模式窗口

使用类型:assets资源 /资源&时,webpack的配置对象&无效

在Vercel中部署Next.js项目时获取`ReferenceError:未定义文档`

无法设置RazorPay订阅API项目价格

每隔3个项目交替显示,然后每1个项目交替显示

如何在下一个js中更改每个标记APEXCHARTS图表的 colored颜色

递增/递减按钮React.js/Redux

Plotly.js栏为x轴栏添加辅助文本

如果查询为空,则MongoDB将所有文档与$in匹配