观看Gulp HTTP响应以进行更改



我想运行GULP任务,该任务请求API端点并注意响应的更改,在检测到更改后,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。我试图在(true(循环中运行它。

您可以使用 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();
    });

最新更新