Je continue d'obtenir une erreur de GCP à ce sujet, j'utilise le datastore & déploiement sur GAE. Quelqu'un at-il des idées pourquoi je reçois cette erreur en utilisant les promesses javascript?Non promis rejet de la promesse - chemin clé incomplet
J'utilise une action google pour ouvrir sur google home, demander une phrase clé d'activation si l'appareil n'a pas déjà été enregistré dans un numéro d'appartement dans le magasin de données. S'il n'est pas enregistré, il demande une phrase clé qui associera l'identifiant unique de l'appareil à un numéro d'appartement. Si l'identifiant unique a un appartement associé, alors il demande ce qu'il peut aider.
Je ne sais pas pourquoi il est dit que le chemin de la clé est incomplet. Aussi je suis nouveau aux promesses! Ainsi, toute aide est grandement appréciée
UnhandledPromiseRejectionWarning: Unhandled rejet de la promesse (id de rejet: 99): Erreur: élément de chemin clé ne doit pas être incomplète: [Activation:]
Avec ce code?
datastore.get(datastore.key([ACTIVATION, device_id]))
.then(results => {
let activation = null
if (results[0]) {
activation = results[0]
}
return Promise.resolve(activation)
})
.then(activation => {
console.log(activation)
let actionMap = new Map();
actionMap.set('input.welcome', assistant => {
console.log('input.welcome')
if (!activation) {
assistant.ask("Hello! May I have your key phrase?")
}
else {assistant.ask("Welcome back, what can I do for you today?")
}
})
actionMap.set('input.unknown', assistant => {
console.log('input.unknown')
if (!activation) {
assistant.ask("Please provide your activation code")
} else
{
let speech = "OK"
if (request.body &&
request.body.result &&
request.body.result.fulfillment &&
request.body.result.fulfillment.messages &&
request.body.result.fulfillment.messages[0] &&
request.body.result.fulfillment.messages[0].speech) {
speech = request.body.result.fulfillment.messages[0].speech
}
sendSMSFromUnit(activation.number, request.body.result.resolvedQuery)
assistant.tell("Got it. ")
}
})
actionMap.set('input.keyphrase', assistant => {
let activationCode = TitleCase([
assistant.getArgument('Token1'),
assistant.getArgument('Token2'),
assistant.getArgument('Token3')
].join(" "))
console.log('activationCode: ' + activationCode)
if (activation && activation.keyphrase == activationCode) {
assistant.tell('This device is activated.')
return
}
datastore.get(datastore.key([APARTMENT, activationCode]))
.then(results => {
console.log(results)
if (!results[0]) {
assistant.ask('Activation unsuccessful. Can you provide your activation code again?')
return
}
let apartment = results[0]
datastore.insert({
key: datastore.key([ACTIVATION, device_id]),
data: {
name: apartment.name,
number: apartment.number,
keyphrase: activationCode,
device_id: device_id
}
}).then(() => {
assistant.ask('Thanks! ')
})
})
})