簡體   English   中英

使用事件源同步獲取數據

[英]Fetching data with Event Source synchronously

我對EventSource有一些問題。 我可以輕松獲取數據,例如可以將數據寫入控制台。 但是,我想從此函數返回此數據。 它不返回,因為存在一些延遲,並且返回未定義。

function fetchData(date,lang) {
    var source = new EventSource(*URL*.php?sse=y&lang=" + lang + "&date=" + date);
    source.addEventListener('message', function (e) {
        return e;
    }, false);
}

我怎樣才能做到這一點?

如果這是對數據的一次性請求,則使用EventSource是該作業的錯誤工具。 EventSource / SSE將在服務器上可用消息時將消息發送到客戶端(您的瀏覽器)。 數據消息將異步通過,因為沒有其他意義。

可以將事件偵聽器包裝在一個fetchData()fetchData()返回該fetchData() ,並使其在每次收到消息時都解析fetchData() 我實際上不確定收到第二條消息時會發生什么。

如果只是一次性請求,則應改用AJAX請求。 同樣,這是異步的。 一些建議可以使它們在這里看起來像是同步的 ,但是,正如他們在此處所強調的那樣,實際上,您應該嘗試使代碼適應其異步特性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM