2014-02-12 22 views
0

我正在使用node-sparql-client來查詢我的端點並檢索SPARQL結果。與端點的通信和函數/回調的執行(在獲得查詢結果之後)是否同步處理?我看着client.js,但無法弄清楚。node-sparql-client是否同步處理與端點的通信?

+0

在代碼中有一堆'繼續'和'回調'表明有一些異步執行。 –

+0

謝謝!我需要依次發送6個查詢到端點。所以,我需要在某個同步塊中調用sparql-client。 – Margi

回答

0

從該項目的用法示例顯示了對execute函數的調用:

client.query(query) 
    //.bind('city', 'db:Chicago') 
    //.bind('city', 'db:Tokyo') 
    //.bind('city', 'db:Casablanca') 
    .bind('city', '<http://dbpedia.org/resource/Vienna>') 
    .execute(function(error, results) { … });    ; ** callback here 

execute功能在client.js定義:

SparqlClient.prototype.execute = function (callback) { 
    this.sparqlRequest(this.currentQuery, callback); 
    return this; 
} 

查詢是異步的,並且它的callback實際處理結果。如果您需要在第一個查詢完成並且其結果可用後運行第二個查詢,請將其放入回調中。

+0

謝謝,但我有6個查詢,而不僅僅是2.我已經將查詢存儲在一個數組中並且正在循環查看。對於每個查詢,我使用sparql-client將其發送到端點,並在回調返回時處理該查詢的結果。然後繼續下一個查詢。 – Margi

+0

同樣的原則適用;只要回調有一個索引到數組中,並增加下一個回調的索引,直到沒有更多的查詢處理... –

+0

我不是很多的Javascript-er,但這裏有一個使用回調來執行的示例Common Lisp中的迭代。這個想法是讓你的回調函數引用一個索引並用增加的索引再次調用查詢。 http://pastebin.com/HruAhcmb –