Dialogflow 在 return 之后给出了无法访问的错误代码
Dialogflow is giving error unreachable code after return
我正在通过 axios 从 mini crypto compare api 获取数据以获取 dialogflow 中的加密货币价格,但在我的实现代码中我收到此错误(如果在 [=17= 之后无法访问代码) ]).如果我将 if
部分放入 promise 中,那么 agent.add()
将不起作用,并且它不会给出为控制台中的平台错误定义的响应。
function priceFinder(agent) {
const data = agent.parameters[CRYPTO_NAMES];
let btc = '';
let eth = '';
return axios.get('https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,BNB,SOL,LUNA&tsyms=USD')
.then(response => {
btc = response.data.BTC.USD;
eth = response.data.ETH.USD;
});
if(data === "btc") {
agent.add(`BTC Price is : ${btc}`);
}
else if(data === "eth") {
agent.add(`ETH Price is : ${eth}`);
}
}
我能够让你的功能在我这边工作,这是我根据你提供的块对你的功能更新的代码:
使用的库
const https = require('https');
主要功能
function getBitcoinInfo(agent){
const url= 'https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,BNB,SOL,LUNA&tsyms=USD';
const req = https.get(url, res => {
console.log(`statusCode: ${res.statusCode}`);
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(data);
console.log(JSON.parse(data).BTC);
});
});
agent.add(`I found bitcoins!`);
}
IntentMap
let intentMap = new Map();
intentMap.set('Get Bitcoin Info', getBitcoinInfo);
agent.handleRequest(intentMap);
有用的提示
- return 将执行最后一条语句,并且不会进一步有效地进行,从而使其余代码行无法访问。
- 您可以通过云功能 -> my_deployed_ fullfillment -> 日志查看日志
- 最后的结果总是显示在最后。
- 如果没有控制台消息到达日志,请确保您的函数正确执行
- 解析 json 后,您可以从中选取元素并填充变量并将其添加到您的响应中。你可以用 JSON parse 来代替它。
有用链接:
我正在通过 axios 从 mini crypto compare api 获取数据以获取 dialogflow 中的加密货币价格,但在我的实现代码中我收到此错误(如果在 [=17= 之后无法访问代码) ]).如果我将 if
部分放入 promise 中,那么 agent.add()
将不起作用,并且它不会给出为控制台中的平台错误定义的响应。
function priceFinder(agent) {
const data = agent.parameters[CRYPTO_NAMES];
let btc = '';
let eth = '';
return axios.get('https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,BNB,SOL,LUNA&tsyms=USD')
.then(response => {
btc = response.data.BTC.USD;
eth = response.data.ETH.USD;
});
if(data === "btc") {
agent.add(`BTC Price is : ${btc}`);
}
else if(data === "eth") {
agent.add(`ETH Price is : ${eth}`);
}
}
我能够让你的功能在我这边工作,这是我根据你提供的块对你的功能更新的代码:
使用的库
const https = require('https');
主要功能
function getBitcoinInfo(agent){
const url= 'https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH,BNB,SOL,LUNA&tsyms=USD';
const req = https.get(url, res => {
console.log(`statusCode: ${res.statusCode}`);
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(data);
console.log(JSON.parse(data).BTC);
});
});
agent.add(`I found bitcoins!`);
}
IntentMap
let intentMap = new Map();
intentMap.set('Get Bitcoin Info', getBitcoinInfo);
agent.handleRequest(intentMap);
有用的提示
- return 将执行最后一条语句,并且不会进一步有效地进行,从而使其余代码行无法访问。
- 您可以通过云功能 -> my_deployed_ fullfillment -> 日志查看日志
- 最后的结果总是显示在最后。
- 如果没有控制台消息到达日志,请确保您的函数正确执行
- 解析 json 后,您可以从中选取元素并填充变量并将其添加到您的响应中。你可以用 JSON parse 来代替它。
有用链接: