Javascript node.js如何从客户端终止函数执行
我有一个不断增长的txt文件和下面的函数来读取文件的增长。这个函数我放在一个路由js中,并通过$http调用调用。一切正常,但我不知道如何停止读取并终止/取消函数执行调用。请帮忙Javascript node.js如何从客户端终止函数执行,javascript,node.js,Javascript,Node.js,我有一个不断增长的txt文件和下面的函数来读取文件的增长。这个函数我放在一个路由js中,并通过$http调用调用。一切正常,但我不知道如何停止读取并终止/取消函数执行调用。请帮忙 var fs = require('fs'), bite_size = 256, readbytes = 0, file; fs.open('test.txt', 'r', function(err, fd) { file = fd; //readsome(); var f
var fs = require('fs'),
bite_size = 256,
readbytes = 0,
file;
fs.open('test.txt', 'r', function(err, fd) {
file = fd; //readsome();
var func = (function readsome() {
var stats = fs.fstatSync(file); // yes sometimes async does not make sense!
if(stats.size<readbytes+1) {
console.log('Hehe I am much faster than your writer..! I will sleep for a while, I deserve it!');
setTimeout(readsome, 1000);
}
else {
fs.read(file, new Buffer(bite_size), 0, bite_size, readbytes, function (err, bytecount, buff) {
console.log(buff.toString('utf-8', 0, bytecount));
readbytes+=bytecount;
process.nextTick(readsome);
});
}
})();
});
var fs=require('fs'),
咬口大小=256,
readbytes=0,
文件
打开('test.txt','r',函数(err,fd){
file=fd;//readsome();
var func=(函数readsome(){
var stats=fs.fstatSync(文件);//是的,有时异步没有意义!
首先使用if(stats.size,而不是使用
process.nextTick(readsome);
setImmediate(readsome);
process.nextTick很难中断;请参阅
接下来,在readSome
的顶部,检查是否应该取消,如果应该,然后返回。您可以在想要取消函数时设置一个全局变量,或者在某些请求状态中包含它。有关如何取消的信息存储在何处的详细信息取决于您想要取消的条件.成功了!!!非常感谢。我只是按照建议做了,并通过同一文件中的另一个api调用更改了全局变量值。