【问题标题】:Watch gulp http response for change观看 gulp http 响应以获取更改
【发布时间】: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) 循环中运行它,但它出错了。

【问题讨论】:

    标签: node.js gulp request


    【解决方案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();
        });
    

    【讨论】:

      猜你喜欢
      • 2016-07-09
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 2022-06-28
      • 2012-11-07
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      相关资源
      最近更新 更多