观看 gulp http 响应以获取更改

Posted

技术标签:

【中文标题】观看 gulp http 响应以获取更改【英文标题】:Watch gulp http response for change 【发布时间】:2017-11-25 11:27:40 【问题描述】:

我想运行请求 api 端点的 gulp 任务并观察响应的变化,在检测到变化后,gulp 将运行build 任务。

为了实现它,我创建了一个任务来监视带有请求响应正文的文件:

gulp.task('watch-response', function () 
    gulp.watch('response_file', function() 
        gulp.start('build');
    );
);

还有一项运行 api 请求的任务,将响应正文解析为 json 并将其保存在文件 response_file 中。

request = require('request'),
fs = require('fs');

gulp.task('api_request', function () 
    request('www.api.com/endpoint', function(error, response, body) 
        var hash = JSON.parse(body).hash;
        fs.writeFileSync('response_file', hash);
    );
);

这里的问题是我想在循环中运行api_request任务有一些延迟,所以会不断地请求api。我试图在 while(true) 循环中运行它,但它出错了。

【问题讨论】:

【参考方案1】:

你可以像这样使用setTimeout,然后它会在循环中工作,但会有一些延迟:

   gulp.task('api_request', function () 
      var delay = 1000;
      function const_request ()
        request('www.api.com/endpoint', function(error, response, body) 
            var hash = JSON.parse(body).hash;
            fs.writeFileSync('response_file', hash);
            setTimeout(const_request, delay);
        );
      
     const_request();
    );

【讨论】:

以上是关于观看 gulp http 响应以获取更改的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Redux 获取新数据以响应 React Router 更改?

使用 spring 3 restful 以编程方式更改 http 响应状态

使用 Gulp 更改后浏览器同步不刷新页面

如何更改我的 twitter 小部件以具有响应高度

Gulp:如何更改文件的修改时间

如何通过 ASP.NET Core 3 中的中间 Web API 传递未更改的 HTTP 响应?