2013-02-19 56 views
2

在JavaScript中實現Ruby Timeout模塊功能的最佳方式是什麼?JavaScript/CoffeeScript相當於Ruby Timeout模塊

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/timeout/rdoc/Timeout.html

例如取消(異步)需要花費更長時間才能完成的請求?

編輯:

要清楚,我想達到的目標:

例如,如果我做的node.js例如HTTP請求

http.request(options, callback).end(); 

而且我想取消請求,如果它比給定的超時時間更長。因此,解開回調或所有需要確保請求沒有進一步效果的東西。

回答

1

如果你想取消(到)長時間運行的過程中創建您的setTimeout創建 變量,封閉(功能)內被訪問

someLongRunningHttpRequest = new HttpRequest("point://some/where") 

#cancel the request after 5 seconds 
setTimeout -> 
    someLongRunningHttpRequest.cancel() 
, 5000 

很明顯,你需要一個對象,它是「cancable」或者你可以簡單地忽略結果?

+0

如何通過setTimeout終止在範圍內初始化的所有操作? – Matthias 2013-02-20 17:25:08

+0

我沒有得到你的問題 - 你問如何終止超時功​​能?這將通過clearTimeout(id_that_was_returned_via_setTimeout) – robkuz 2013-02-20 19:31:20

+0

我的意思是如果我開始一個請求(db/http或者其他)並且我想在超時後終止否是否如何實現請求。 – Matthias 2013-02-20 23:49:54