2017-05-16 41 views
0

nightmareJSを使用すると、waitTimeoutの制限を超えても関数を呼び出す方法はありますか?今のところは私に、このエラーを受信した場合、関数を呼び出すためのどのような方法がある場合、私は思っていたnightmare waitTimeoutを超えた場合に関数を呼び出す

UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: .wait() timed out after 10000msec 

を警告約束除去を与えています。 (Belfordzが推奨されているように)私は後藤と、その後の文にcatch節を追加することができます

var Nightmare = require('nightmare');  
var nightmare = Nightmare({ show: true, waitTimeout: 10000}); 
nightmare.goto(my_url); 
nightmare.wait(my_element); 
nightmare.evaluate(function() {...}); 
nightmare.then(function(result) {...code that could give a promise warning...}); 

、これは動作しますが、その後の文は、それ内の他のネストされたステートメントを持っている:私のコードは、同じように構成されています。 Idは、約束された警告やタイムアウト・エラーが発生した場合、それを捕まえることができる単一のステートメントを好む。

+0

あなたはちょうど約束が拒否されているものにキャッチ句を追加する必要があります – Belfordz

答えて

0

このエラーは、現在のページでmy_elementが10秒以内に見つからないことを意味します。同期

しかし、あなたはそれをコード化している方法は、あなたが方法gotowaitを呼び出している、evaluatethen、彼らがそうでなければ、彼らが実行されます、呼び出しを「チェーン化」によって、すなわち、内部の約束メカニズムによって呼び出されなければなりませんしながら、すぐに:

var Nightmare = require('nightmare');  
var nightmare = Nightmare({ show: true, waitTimeout: 10000}); 
nightmare.goto(my_url) // <-- don't end the statement here, continue the chain: 
    .wait(my_element) 
    .evaluate(function() {...}) 
    .then(function(result) {...}); 
関連する問題