Оператор if
вашего первого слота всегда будет выглядеть как истина.
if (intentObj.slots.name.name == "name") {...}
Это потому, что slots.slotName.name
всегда будет слотомназвание.Это бесполезный оператор if
.
Возможно, вы захотите проверить, установлен ли слот и не имеет ли значение null.Затем вы можете немного изменить свою логику.
if(intentObj.slots.name && intentObj.slots.name.value !== null) {
// check if confirmed or not
} else {
// elicit slot "name"
}
Оператор if
вашего второго слота всегда будет ложным.
if (intentObj.slots.qualification.qualification == "qualification") {
Это потому, что в массиве slots.slotName
нет ключа qualification
.Так что просто измените его так, чтобы он был похож на приведенный выше, проверяя, установлен ли слот qualification
, а значение не равно нулю.
if(intentObj.slots.qualification && intentObj.slots.qualification.value !== null) {
// check if confirmed or not
} else {
// elicit slot "qualification"
}