2016-12-05 4 views
1

Ich versuche mailchimp-api-v3 in einem Meteor (1.4.1.3) Projekt zu verwenden (Ich mag die Batch-Unterstützung in diesem)Ärger mit Meteor.wrapAsync und MailChimp-api-v3

ich den Anruf eingewickelt habe in Meteor .wrapAsync (ein bisschen eine Lernkurve dort, aber ich denke Ich habe es).

Ich denke, es gibt einen Konflikt zwischen der Art, wie .wrapAsync funktioniert und der Art, wie der Autor das mailchimp-api-v3-Paket geschrieben hat.

Hier sind meine Methode:

var Mailchimp = require('mailchimp-api-v3') 

Meteor.methods({ 

getCampaigns: function() { 
    console.log("running..."); 

    var mailchimp = new Mailchimp(Meteor.settings.private.mailChimp.apiKey); 

    var getCampaignsAsyncToSync = Meteor.wrapAsync(mailchimp.request, mailchimp); 
    var resultOfGetCampaigns = getCampaignsAsyncToSync({method: 'get', path: '/campaigns'}, {}); 

    var campaigns = []; 

    _.each(resultOfGetCampaigns.campaigns, function(campaign){ 
     var doc = { 
      //Just grab a few pieces of data for testing 
      id: campaign.id, 
      type: campaign.type, 
      create_time: campaign.create_time 
     }; 

     campaigns.push(doc); 
    }); 

    return campaigns; 
} 
}); 

Und die Konsole Fehler der Ergebnisse:

=> Meteor server restarted 
I20161205-14:32:22.908(-5)? running... 
W20161205-14:32:24.134(-5)? (STDERR) Unhandled rejection TypeError: done is not a function 
W20161205-14:32:24.135(-5)? (STDERR)  at /Users/michaelwickett/Sites/sagecomm-projects/academica-reporter/node_modules/mailchimp-api-v3/index.js:507:9 
W20161205-14:32:24.135(-5)? (STDERR)  at processImmediate [as _immediateCallback] (timers.js:383:17) 
W20161205-14:32:24.135(-5)? (STDERR) From previous event: 
W20161205-14:32:24.135(-5)? (STDERR)  at Mailchimp.request (/Users/michaelwickett/Sites/sagecomm-projects/academica-reporter/node_modules/mailchimp-api-v3/index.js:506:13) 
W20161205-14:32:24.136(-5)? (STDERR)  at packages/meteor/helpers.js:118:1 
W20161205-14:32:24.136(-5)? (STDERR)  at [object Object].getCampaigns (server/methods.js:11:36) 
W20161205-14:32:24.136(-5)? (STDERR)  at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1711:12) 
W20161205-14:32:24.136(-5)? (STDERR)  at packages/ddp-server/livedata_server.js:711:19 
W20161205-14:32:24.136(-5)? (STDERR)  at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) 
W20161205-14:32:24.136(-5)? (STDERR)  at packages/ddp-server/livedata_server.js:709:40 
W20161205-14:32:24.137(-5)? (STDERR)  at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) 
W20161205-14:32:24.137(-5)? (STDERR)  at packages/ddp-server/livedata_server.js:707:46 
W20161205-14:32:24.137(-5)? (STDERR)  at Session.method (packages/ddp-server/livedata_server.js:681:23) 
W20161205-14:32:24.137(-5)? (STDERR)  at packages/ddp-server/livedata_server.js:551:43 

ich diesen Thread gefunden Meteor - Wrapping NPMs with Meteor.wrapAsync, die im Zusammenhang scheint, aber ich verstehe nicht genug, um zu beheben oder überschreiben Sie manuell die Art, wie das Paket eingerichtet wird. Abhängigkeiten!

Ich würde aber gerne verstehen, daher meine Frage.

Schätzen Sie Ihre Zeit beim Lesen und geben Sie mir einen Schub in die richtige Richtung.

Antwort