Blog overzicht

Hoe je kunt controleren of een objecteigenschap niet is gedefinieerd

Binnen je chatbot kun je werken met verschillende objecten die eigenschappen bevatten. Op basis van deze eigenschappen het het mogelijk om de flow aan te passen. Zie het volgende voorbeeld:

Je klantenservice-bot is beschikbaar als een webwidget en is actief op twee plaatsen:

  1. Achter een login
  2. Op je homepage (geen login vereist)

Wanneer de chat tussen eindgebruiker en bot een overdracht of overname vereist, wil je misschien je flow aanpassen op basis van de informatie die je van je eindgebruiker hebt. In het geval dat de overdracht achter een login plaatsvindt, kun je teruggaan naar de eindgebruiker omdat de naam en het e-mailadres zichtbaar voor je zijn. Wanneer de gebruiker de overdracht vanaf de homepagina invoert, is zijn of haar profiel niet gedefinieerd en wil je misschien zijn of haar voornaam en e-mailadres vragen.

De typeof operator

Je kunt gebruik maken van de typeof operator in JavaScript om het type objecteigenschap te controleren. De typeof operator retourneert een string die een van de volgende bevat:

Check if Undefined

In het volgende voorbeeld zullen we onze flow aanpassen op basis van het e-mailadres van de gebruiker. Als het e-mailadres van de gebruiker bestaat (bijv. “[email protected]”), zal de operator typeof ‘string’ retourneren. Als de gebruiker anoniem is, wordt ‘undefined’ geretourneerd.

Als de geretourneerde waarde een string is, kunnen we aannemen dat het e-mailadres bekend is. Daarom activeren we een gebeurtenis “Profile-Known”. Als de geretourneerde waarde geen tekenreeks is, kan het een object, getal of ongedefinieerd zijn. In dat geval activeren we een gebeurtenis “Profile-Unknown”. Zorg ervoor dat je events maakt die overeenkomen met die namen in je ontwerp.

async payload => {
  // check if a string will be returned
  if(typeof [payload.user.profile.email][0] === 'string') {
    
    // Trigger an event
    trigger('Profile-Known')

  } else {
    // Trigger other event
    trigger('Profile-Unknown')
  }
}
Demo aanvragen