在bot框架中处理异步调用

编程入门 行业动态 更新时间:2024-10-12 20:28:35

在bot<a href=https://www.elefans.com/category/jswz/34/1770644.html style=框架中处理异步调用"/>

在bot框架中处理异步调用

我们正在使用通过NodeJS编写的Microsoft Bot Framework配置的Bot。在对话框的执行流程中,我们向用户提供某些信息,然后通过SOAP完成一些服务器处理,并且在下一个瀑布方法开始之前,需要此SOAP响应的结果。

总之,我们有下面的代码:

bot.dialog('changedefaultlogingroupDialog', [
    async function (session, args, next) {
        wargs[0] = 'change default login group';

        var sourceFile = require('./fetchSharePointUserDetail.js');
        session.privateConversationData.userSharepointEmail = global.DEVSharepointBotRequestorEmailID;
        console.log('\nsession.privateConversationData.userSharepointEmail:'+session.privateConversationData.userSharepointEmail);
        var get_SharepointUserId_args = ['get Sharepoint user id', session.privateConversationData.userSharepointEmail];
        sourceFile.login(get_SharepointUserId_args);

            setTimeout(() => {
                global.DEVSharepointTeamcenterUserID = require('./fetchSharePointUserDetail.js').DEVTeamcenterUserId;
                  console.log('\nglobal.DEVSharepointTeamcenterUserID:'+global.DEVSharepointTeamcenterUserID+'\n');
                  console.log("Request has been made from directline channel by user id <"+global.DEVSharepointTeamcenterUserID+">");
                  session.privateConversationData.requestor_id =  global.DEVSharepointTeamcenterUserID; 
                  session.privateConversationData.create_ques  = session.message.text;
                  next();
              }, 3000);
    },

async function (session, result, next) {

    Do processing here that is dependent on session.privateConversationData.requestor_id

}

如您从上面的示例中看到的,setTimeout方法等待3秒钟以检索SOAP响应。尽管这在DEV环境中有效,但在我们的PRD环境中却失败了。所以我想知道什么是更合适的方法。在这种情况下,“等待”是否正确?我问这是因为这是在BOT Framework上下文中,并且不确定是否有任何副作用。

请提出建议。

谢谢,帕万。

回答如下:

等待是正确的方法。

我不熟悉bot框架,但是我猜想它们的异步部分会在登录期间发生。

await sourceFile.login(get_SharepointUserId_args);

将在异步调用的位置。也可以在fetchSharePointUserDetail.js中可能有更好的方法将该文件加载为模块,以便您在返回的对象上调用函数,而不是从显然正在执行某些操作的代码中返回变量。

更多推荐

在bot框架中处理异步调用

本文发布于:2024-05-07 21:17:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757294.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:框架   bot

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!