node.js - Forventet argument av typen "string", "stdClass" gitt Feil


Jeg bruker mailchimp-api-v3 for Node.js. Jeg prøver for øyeblikket å oppdatere en brukers tag, men noen ganger dukker denne feilen opp og jeg har ingen idé om hva den betyr. Jeg har lett rundt, men det ser ikke ut som mange utviklere har støtt på den.

Alle forslag er velkomne.

try {
await mailchimp.post('/lists/' + listIDUsers + '/members/' + crypto.createHash('md5').update(profileSnap.val().email.toLowerCase()).digest("hex") + '/tags', {
        tags: [{name: "traveler", status: "active"}]
    });
} catch (error) {
if (error.status === 404) {
await mailchimp.post('/lists/' + listIDUsers + '/members', {
            email_address: profileSnap.val().email,
            status: 'subscribed',
            merge_fields: {
                "FNAME": profileSnap.val().firstName,
                "LNAME": profileSnap.val().lastName,
                "UID": uid,
                "EMAIL": profileSnap.val().email
            },
            tags: [{name: "traveler", status: "active"}]
        });
    } else {
        console.log("Issue for: " + uid);
        console.log(error);
 }

Feilen:

Error: Expected argument of type "string", "stdClass" given
    at Request._callback (/srv/node_modules/mailchimp-api-v3/index.js:506:30)
    at Request.self.callback (/srv/node_modules/request/request.js:185:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)
    at Request.<anonymous> (/srv/node_modules/request/request.js:1161:10)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at IncomingMessage.<anonymous> (/srv/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:313:30)
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickDomainCallback (internal/process/next_tick.js:219:9)

Svar #1

Ok, jeg har bestemt meg for å gå videre og kontakte Mailchimp siden dette spørsmålet har vært ubesvart i noen dager! De svarte meg og sa at grunnen til at jeg får feilen ovenfor er at jeg prøver å sette en tag for en abonnent rett etter å ha lagt til abonnenten, så systemet klarte ikke å legge til taggen fordi abonnentens hashede ID ikke var helt opprettet ennå.

Så alt jeg trengte var følgende kodelinje for å få funksjonen min til å vente 10 sekunder før den setter taggen.

await new Promise(resolve => setTimeout(resolve, 10000));
await mailchimp.post('/lists/' + listIDUsers + '/members/' + crypto.createHash('md5').update(profileSnap.val().email.toLowerCase()).digest("hex") + '/tags', {
    tags: [{name: "traveler", status: "active"}]
});

Relaterte artikler