1

我正在尝试使用through2. 我有一个流是 index.html 文件,我正在尝试逐行修改 index.html 内容,并-------在每一行上添加一个。我有:

  indexHTML
      .pipe(through2.obj(function(obj, enc, next) {
        blah = obj.contents.toString().split('\n');
        blah.forEach(function(element) {
            this.push("-------");
            this.push(element):
        });
        next();
      })).pipe(process.stdout);

我目前遇到的问题在数组方法this.push()中不可用。blah.forEach()关于如何实现修改 index.html 流的任何建议?

4

1 回答 1

2

如果要保留forEach()而不是常规 for 循环,请forEach()接受第二个参数,即所需的this上下文:

blah.forEach(function(element) {
  this.push("-------");
  this.push(element):
}, this);

您还可以始终使用更通用的“自我”解决方法:

var self = this;
blah.forEach(function(element) {
  self.push("-------");
  self.push(element):
});
于 2015-02-08T04:20:49.653 回答