無法更改請求的默認超時值。但是,在管理異步請求處理程序中的超時時,您可以手動執行此操作。大多數應用程序應該使用異步請求,所以無論如何你都會進行類似的檢查。另外請務必撥打roUrlTransfer
上的asyncCancel()
來清理請求。
' given a url that will timeout
url = "http://www.mocky.io/v2/5a75d6902e000068006ab21a?mocky-delay=1000ms"
' and a timeout in ms
timeout = 100
' create a roUrlTransfer for the request
urlTransfer = CreateObject("roUrlTransfer")
urlTransfer.setUrl(url)
port = CreateObject("roMessagePort")
urlTransfer.setMessagePort(port)
' request the URL
if urlTransfer.asyncGetToString()
event = wait(timeout, port)
if type(event) = "roUrlEvent"
print "urlTransfer success"
else if event <> invalid
print "event emitted: " + type(event)
else
print "urlTransfer timed out"
urlTransfer.asyncCancel()
' alternatively: measure the request time against timeout using roTimeSpan
end if
end if
正如代碼所指出的,你會想使用roTimeSpan
如果你正在處理您的等待循環其他請求測量超時(在情況下,等待超時是不一樣的請求超時)。