gpt4 book ai didi

javascript - 在 Microsoft Bot Builder 中运行异步函数(使用 Node.JS)

转载 作者:行者123 更新时间:2023-11-30 11:24:18 26 4
gpt4 key购买 nike

我正在尝试制作一个测试机器人,在被聊天时用通过另一个 API 从 JSON 对象获取的(无意义的)字符串进行响应

代码:

var restify = require('restify');
var builder = require('botbuilder');
var request = require('request-promise');

// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log('%s listening to %s', server.name, server.url);
});

// Create chat connector for communicating with the Bot Framework Service
var connector = new builder.ChatConnector({
appId: process.env.MicrosoftAppId,
appPassword: process.env.MicrosoftAppPassword
});

// Listen for messages from users
server.post('/api/messages', connector.listen());

// Receive messages from the user and respond by echoing each message back (prefixed with 'You said:')
var bot = new builder.UniversalBot(connector, function (session) {
var text = await MyRequest()
session.send("%s", text);
});

async function MyRequest() {
var options = {
uri: "https://jsonplaceholder.typicode.com/posts/1",
method: "GET",
json: true
}

try {
var result = await request(options);
return result;
} catch (err) {
console.error(err);
}
}

问题是 bot var 不是异步函数,所以我不能在其中放入 await。如果我删除 await,机器人会回复 Object Promise。总体而言,我对 JS 相当缺乏经验,所以我可以获得任何指示吗?

e: Request 部分效果很好,我已经在不同的 js 程序中单独测试过了

最佳答案

你试过了吗?如果您使用的是 ES6 兼容的 Node 环境,这应该可以工作

var bot = new builder.UniversalBot(connector, async function (session) {
// Use JSON.stringify() if MyRequest Promise will resolve a object
var text = await MyRequest()
session.send("%s", text);
});

关于javascript - 在 Microsoft Bot Builder 中运行异步函数(使用 Node.JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48612574/

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