2017-12-11 7 views
0

私はこの使用後にphantomjsのWebページを正しく閉じるには?

Observable.fromPromise(phantom.createPage()).flatMap(jobPage => { 
      return Observable.fromPromise(jobPage.open(url)).flatMap(status => { 
       if (status !== "success") { 
        console.error("Couldn't load job page for url " + url + " Status: " + status); 
        jobPage.close(); 
        return Observable.of(undefined) 
       } else { 
        return Observable.fromPromise(jobPage.evaluate(function() { 
         //do some content reading, return data 

         return data; 
        })); 
       } 
      }); 
     }) 

であり、それは動作しますが、すべてのページでそれが遅く、遅くなる、これまでやってき何PhantomJSとtypescriptです/ rxjs で200の以上のWebページから一部のデータを読み込むしようとしています最後に、PhantomからのMemory Exhaustedメッセージで終了します。私はそれが私が作成しているWebページを閉じないためだと思うが、私はそのような場合(flatMapは新しいものを作成する、私は後で抽出のために必要とObservable.fromPromise()私は終わりだ後に私がページを閉じることができます。

をすべてのヘルプは

+0

を使用する必要があります http://phantomjs.org/api/phantom/method/exit.html –

+0

私はファントムを終了したくありません。私はそのページを閉じたいですevaluate()関数からデータを取得して、Memory Exhaustedに開いているページが多すぎないようにします。 – Nadir

答えて

1

[OK]を高く評価され、それを考え出した、ちょうどあなたがでファントムを終了することができ、単にドキュメントから

Observable.fromPromise(phantom.createPage()).flatMap(jobPage => { 
      //stuff as before 
     }).finally(function(){ 
         jobPage.close(); 
        }) 
関連する問題