は時々原因あなたが接続しているサーバーにとても長い時間がかかることがありconnect()
方法を提供するライブラリがあることを言います接続は使用後に閉じられます。タイムアウトはディスポーザーで
ここでは、connect()
が必要な状況ですが、接続できない場合は5秒以内にタイムアウトします。
だから、試してみてください。
明らかconnect()
戻り
Disposer
ので、動作しません
Promise.using(connect().timeout(5000), function(conn) {
console.log('Hello world')
})
を。
ああ、私はちょうど使用ブロックの中にタイムアウトを入れます、あなたは素朴に考えるかもしれません。さて、接続が確立されると、ブロックに入ることはないので、これはうまくいきません。
だから最終的に、あなたは試してみてください。
Promise.using(connect(), function(conn) {
console.log('Hello world')
})
.timeout(5000)
これ、もちろん、動作します。しかし、我々は単純なconsole.log
を私たちの仕事にするほど幸運ではない。やけに長いタスクが自然にすべての時間をトリガするためにタイムアウトを引き起こして、とても長い時間がかかるため
Promise.using(connect(), function(conn) {
// Do an awfully long task that takes 2 minutes
})
.timeout(5000)
今タイムアウトが再び使用できなくなる。その代わりに、それはより多くのように見えます。
connect()
にタイムアウトを含める必要がない、いくつかの慣用的な方法でこれを実際に書き込む方法はありますか?
connect関数の引数としてタイムアウトを渡します。 –
前述のように、私は 'connect()'を制御できない場合にこれを解決することに興味があります。 –