我想运行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();
});