Я использую node-sparql-client для запроса моей конечной точки и получения результатов SPARQL. Эта связь с конечной точкой и выполнение функции / обратного вызова (после получения результатов запроса) обрабатываются синхронно? Я просмотрел client.js, но мог многого не пойму.
Обрабатывает ли node-sparql-client связь с конечной точкой синхронно?
Ответы (1)
Пример использования из проекта показывает вызов функции 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
обрабатывает результаты. Если вам нужно запустить второй запрос после того, как первый будет завершен и его результаты доступны, просто поместите его в обратный вызов.
person
Joshua Taylor
schedule
12.02.2014
Спасибо, но у меня есть 6 запросов, а не только 2. Я сохранил запросы в массиве и просматриваю его в цикле. Для каждого запроса я отправляю его в конечную точку с помощью sparql-client, и когда обратный вызов возвращается, обрабатываю результаты этого запроса. Затем переходите к следующему запросу.
- person Margi; 12.02.2014
Применяется тот же принцип; просто сделайте так, чтобы у обратного вызова был индекс в массиве, и увеличивайте индекс для следующего обратного вызова, пока не останется больше запросов для обработки ...
- person Joshua Taylor; 13.02.2014
Я не очень люблю JavaScript, но вот пример использования обратных вызовов для выполнения итерации в Common Lisp. Идея состоит в том, чтобы ваша функция обратного вызова ссылалась на индекс и снова вызывала запрос с увеличенным индексом. pastebin.com/HruAhcmb
- person Joshua Taylor; 13.02.2014
continuation
иcallback
, предполагает наличие некоторого асинхронного выполнения. - person Joshua Taylor   schedule 12.02.2014