From 4f3d12d7a5ae2bd72692f073dc5a173423b3a8ce Mon Sep 17 00:00:00 2001 From: Devin Howard Date: Thu, 27 Oct 2016 14:03:18 +0800 Subject: [PATCH] fix import promises (#858) --- frontend/src/Metamaps/Import.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/frontend/src/Metamaps/Import.js b/frontend/src/Metamaps/Import.js index 15f2875b..6fd43bfe 100644 --- a/frontend/src/Metamaps/Import.js +++ b/frontend/src/Metamaps/Import.js @@ -90,7 +90,8 @@ const Import = { if (window.confirm('Are you sure you want to create ' + topics.length + ' new topics and ' + synapses.length + ' new synapses?')) { self.importTopics(topics) - window.setTimeout(() => self.importSynapses(synapses), 5000) + //window.setTimeout(() => self.importSynapses(synapses), 5000) + self.importSynapses(synapses) } // if } // if }, @@ -265,10 +266,24 @@ const Import = { return // next } - self.createSynapseWithParameters( - synapse.desc, synapse.category, synapse.permission, - topic1, topic2 - ) + const topic1Promise = $.Deferred() + if (topic1.id) { + topic1Promise.resolve() + } else { + topic1.on('sync', () => topic1Promise.resolve()) + } + const topic2Promise = $.Deferred() + if (topic2.id) { + topic2Promise.resolve() + } else { + topic2.on('sync', () => topic2Promise.resolve()) + } + $.when(topic1Promise, topic2Promise).done(() => { + self.createSynapseWithParameters( + synapse.desc, synapse.category, synapse.permission, + topic1, topic2 + ) + }) }) },