1

を使用して Node.js ストリームを実験していますthrough2。index.html ファイルであるストリームがあり、すべての行に a を追加して、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 ループの代わりに保持したい場合は、目的のコンテキストである2 番目の引数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 に答える