From ae5f16b312d39558fed164578cf56dc30f7e971f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= Date: Sun, 30 Dec 2018 10:49:07 +0100 Subject: [PATCH] ImageLoader: asyncify parseObject function --- src/ImageLoader.js | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/ImageLoader.js b/src/ImageLoader.js index 0a0db229..c5391435 100644 --- a/src/ImageLoader.js +++ b/src/ImageLoader.js @@ -1,3 +1,4 @@ +const async = require('async') var wikidata = require('./wikidata') var wikipedia = require('./wikipedia') var cache = {} @@ -75,23 +76,29 @@ ImageLoader.prototype.parseObject = function (data) { ImageLoader.prototype.loadWikidata = function (src, callback) { var value = src.value - wikidata.load(value, function (err, result) { - if (result && result.claims && result.claims.P18) { - result.claims.P18.forEach(function (d) { - var id = d.mainsnak.datavalue.value - - if (this.found.indexOf(id) === -1) { - this.found.push(id) - this.data[id] = { - id: id, - type: 'wikimedia' - } + wikidata.load(value, (err, result) => { + async.series([ + (done) => { + if (result && result.claims && result.claims.P18) { + result.claims.P18.forEach((d) => { + let id = d.mainsnak.datavalue.value + + if (this.found.indexOf(id) === -1) { + this.found.push(id) + this.data[id] = { + id: id, + type: 'wikimedia' + } + } + }) } - }.bind(this)) - } - callback(err) - }.bind(this)) + done(null) + } + ], (err) => { + callback(err) + }) + }) } ImageLoader.prototype.loadWikimediaCommons = function (src, callback) {