gpt4 book ai didi

javascript - 未处理的 promise 拒绝 - 关键路径不完整

转载 作者:行者123 更新时间:2023-12-03 03:33:23 25 4
gpt4 key购买 nike

我不断从 GCP 收到与此相关的错误,我正在使用数据存储并在 GAE 上进行部署。有人知道为什么我使用 javascript Promise 会收到此错误吗?

我正在使用 Google 操作在 Google Home 上打开,如果设备尚未注册到数据存储中的公寓号码,则要求输入激活 key 短语。如果未注册,它会要求输入一个关键字短语,将唯一的设备 ID 与公寓号码相关联。如果唯一 ID 有与之关联的公寓,则会询问它可以提供什么帮助。

我不知道为什么它说关键路径不完整。 而且我对 Promise 还很陌生!因此,非常感谢任何帮助

UnhandledPromiseRejectionWarning:未处理的 promise 拒绝(拒绝 ID:99):错误:关键路径元素不得不完整:[激活:]

用这个代码?

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! ')
})
})
})

最佳答案

Promise 的整个模式是

Promise((resolve, reject) => {
// ...
});

现在如何使用它

promiseFunc(...)
.then((x) => {
// It get executed well
})
.catch((x) => {
// An error happened
});
<小时/>

在您的代码中,您缺少 .catch 部分。因此,如果您的 Promise 函数中出现错误,您将无法捕获该错误以及 Node 异常的结果。这就是为什么您会收到以下警告:未处理的 promise 拒绝

关于javascript - 未处理的 promise 拒绝 - 关键路径不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45984467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com