Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >node js递归概念

node js递归概念
EN

Stack Overflow用户
提问于 2018-01-12 05:05:16
回答 1查看 51关注 0票数 2

我是Node.js技术的新手,面临着递归概念方面的一些问题。

我有一个包含用户名列表的main.js和一个soap方法调用Soap.js包含将从用户名获取电子邮件id的soap方法。

代码语言:javascript
运行
AI代码解释
复制
------------- Main.js ----------------
'use strict'

var emailService = require('./emailService .js').emailService ;
var emailService1 = new emailService ();

var emailList = [];
var psList = ['1062','10465','10664','10681'];
emailService1.helpdeskEmailService(psList, 'abcabc', 'abcabc', function(err,result) {
    console.log('in service -------------------------');
    if (err) {
        console.log("Error while api call :: " +err);
    } else {
        console.log("response from soap service - " +  result);
  }

});

console.log('my email list' +result);

------------- SoapService.js ----------------

'use strict'

var c_instancename = '';
var soap = require('soap');
var l_args;
var c_url = "http://airinmsbmcarmt.lntinfotech.com/arsys/WSDL/public/172.21.103.136/zlandt:FetchEmailID";

class emailService {

    constructor(p_instanceName) {
        c_instancename = p_instanceName;
    }

    helpdeskEmailService (ps_number,p_username,p_password,p_callback) {
        var l_header = {                      
              'authentication': '',
              'locale': '',
              'timeZone': '',
              'AuthenticationInfo': {
              'userName': p_username,
              'password': p_password
              }
        }

        soap.createClient(c_url, function(err, client) {      
          //var soapheader = l_header;
            client.addSoapHeader(l_header);
            var l_args = {LoginID:ps_number};
            client.EmailID(l_args, function(err, result) {
              if(err) {
                  console.log('error page');
              } else {
                  console.log('my resultttttttt in soap...');
                  p_callback(err,result);
              }
            });
        });
    }
}

module.exports.emailService = emailService;

在这种情况下,我从soap服务得到延迟响应。

我是否可以进行webservice的同步调用,因为我正在获取emailList的NULL值。

我有一个包含用户名列表和soap方法调用的main.js

Soap.js包含soap方法,该方法将从用户名获取电子邮件id。

EN

回答 1

Stack Overflow用户

发布于 2018-01-12 09:18:06

您可以从您的服务返回一个promise,如果您使用的是Node 8.0+,您还可以进行同步调用。如果不是这样,至少它使处理异步调用变得更容易。

代码语言:javascript
运行
AI代码解释
复制
helpdeskEmailService (ps_number,p_username,p_password) {
    var l_header = {                      
          'authentication': '',
          'locale': '',
          'timeZone': '',
          'AuthenticationInfo': {
          'userName': p_username,
          'password': p_password
          }
    }

    return new Promise (function (resolve, reject) {
        soap.createClient(c_url, function(err, client) {      
          //var soapheader = l_header;
            client.addSoapHeader(l_header);
            var l_args = {LoginID:ps_number};
            client.EmailID(l_args, function(err, result) {
              if(err) {
                  console.log('error page');
                  reject(err);
              } else {
                  console.log('my resultttttttt in soap...');
                  resolve(result);
              }
            });
        });
    }
}

// You can then call like this
var promise = emailService1.helpdeskEmailService(psList, 'abcabc', 'abcabc');

promise.then((result) => {
    console.log("response from soap service - " +  result);
}).catch ( (err) => {
    console.log("Error while api call :: " +err);
});

您还可以使用await使其同步(取决于您使用的Node版本):

代码语言:javascript
运行
AI代码解释
复制
async function waitForresult() {
    try
    {
        const result = await emailService1.helpdeskEmailService(psList, 'abcabc','abcabc');
        console.log(result);
    } catch (e) {
        console.log('Error occurred: ' + e);
    }
};

waitForresult();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48219850

复制
相关文章
【Node.JS 】http的概念及作用
在网络节点中,负责消费资源的电脑,叫做客户端,负责对外提供网络资源的电脑,叫做服务器。
坚毅的小解同志的前端社区
2022/11/28
7370
【Node.JS 】http的概念及作用
【Node.JS 】服务器相关的概念
ip地址就是互联网上每台计算机的唯一地址,因此ip地址具有唯一性,如果把“个人电脑”比作“一台电脑”,那么“ip地址”就相当于“电话号码”,只有在知道对方ip地址的前提下,才能与对应的电脑之间进行数据通信。
坚毅的小解同志的前端社区
2022/11/28
1K0
【Node.JS 】服务器相关的概念
Js递归
递归是一个函数调用自身的一种方法 递归的过程就是出入栈的过程 //必须要有if判断进行出栈,不然会进行死循环 <script> function factorial(n) { if (n == 1) return n; return n * factorial(n - 1) } console.log(factorial(5)) // 5 * 4 * 3 * 2 * 1 = 120 </script>
明知山
2020/09/03
2.2K0
node.js中“模块”Module的概念和介绍
在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。
acoolgiser
2019/01/17
9300
【Node.js】初识Node.js
本文介绍了Node.js的架构特点、优点以及应用,并通过实例介绍了Node.js在Web开发中的基础应用。同时,文章还分享了Node.js的学习资料和备忘,包括IDE的使用和常用工具。
宋凯伦
2018/01/04
22.9K0
【Node.js】初识Node.js
JS编程: 递归
想成为一个更好的开发者,那么理解数据结构、算法和基本编程思想是必须的。现在大多数问题都被现代工具和各种库解决了,但是对这些领域有一个更深的了解,将会大大拓宽你软件开发的视野。
疯狂的技术宅
2019/03/28
2.7K0
JS编程: 递归
js 递归调用
最近在做一个复杂表格设计数据格式设置,其中用到了多叉树的原理,所以要用到递归来实现数据格式化。
夜尽天明
2019/11/13
18.9K0
js 递归调用
Node.js新手必须知道的4个JavaScript概念
如果只需要知道一种编程语言就可以构建一个全栈的应用程序,是不是特别了不起?Ryan Dahl为了把这个想法成为现实,创造了node.js。Node.js是建立在Chrome强劲的V8 JavaScript引擎上的服务器端框架。虽然最初是用C++编写的,但是应用程序通过JavaScript运行。 这样一来,问题就解决了。一种语言就可以统治一切。而且,在整个应用程序中你只需要使用这一种语言。所以,我们需要深刻了解node.js。这就是本文的主题。 下面这四个基本概念是你想要掌握node.js所必需的。我会尽可能
李海彬
2018/03/22
1.1K0
Node.js新手必须知道的4个JavaScript概念
Node.js新手必须知道的4个JavaScript概念
如果只需要知道一种编程语言就可以构建一个全栈的应用程序,是不是特别了不起?Ryan Dahl为了把这个想法成为现实,创造了node.js。Node.js是建立在Chrome强劲的V8 JavaScript引擎上的服务器端框架。虽然最初是用C++编写的,但是应用程序通过JavaScript运行。 这样一来,问题就解决了。一种语言就可以统治一切。而且,在整个应用程序中你只需要使用这一种语言。所以,我们需要深刻了解node.js。这就是本文的主题。 下面这四个基本概念是你想要掌握node.js所必需的。我会尽可能
李海彬
2018/03/23
8770
【Node.js】:多版本 Node.js 管理
有些项目对 Node.js 的版本有要求(例如:codesandbox-client 要求 Node.js 版本要兼容 ^10.22.1),这就需要有一种方法能在你的电脑上管理(安装、切换、删除)多个版本的 Node.js。
WEBJ2EE
2021/01/28
12.2K0
【Node.js】:多版本 Node.js 管理
Node.js
主要学习:JavaScript+Node.js内置API模块(fs、path、http等)+第三方API模块(express、mysql等)
岳泽以
2022/11/21
7.9K0
Node.js
node.js
Node.js 是一种建立在Google Chrome’s v8 engine上的 non-blocking (非阻塞), event-driven (基于事件的) I/O平台.
Qwe7
2022/05/21
5.1K0
js 递归执行顺序
代码执行getSum(5)--->进入函数, 此时的x是5, 执行的是5+getSum(4), 此时代码等待
小蔚
2022/05/09
7.3K0
js  递归执行顺序
Node JS World
The pluggable linting utility for JavaScript and JSX
绿巨人
2019/03/01
1.5K0
【node.js】node.js的安装和配置
Node.js是一个在服务器端可以解析和执行JavaScript代码的运行环境,也可以说是一个运行时平台,仍然使用JavaScript作为开发语言,但是提供了一些功能性的API。
颜颜yan_
2023/02/19
9.2K0
【node.js】node.js的安装和配置
【Node.js】你真的了解 Node.js 么
Node.js 是基于 Chrome V8 引擎的 JavaScript 运行时环境。
GopalFeng
2022/08/01
5.5K0
【Node.js】你真的了解 Node.js 么
JS相关概念
1、CSS和JS在网页中的放置顺序是怎样的? (1)CSS 对于谷歌浏览器和Safari放在head里或body里都一样。因为它是在全部的样式表完全加载下来之后才开始渲染页面,将内容呈现在页面上。 对于Firefox,head标签中的<link rel="stylesheet">行为与Chrome/Safari中完全一致,这些link标签全部加载完成之前,页面上不显示内容。而body标签中的<link rel="stylesheet">则不阻塞任何内容显示,会出现FOUC无样式内容闪烁。 对于IE/Edge
小胖
2018/06/27
1.6K0
算法之递归(js版本)
相信在数学中很常见这个概念,实际在编程中也很常见这样的思维。递归通俗的来说,就是通过不断的将当前问题进行分解,向前追溯直到终点然后再反推求解的过程。
RobinsonZhang
2018/11/07
3.3K0
【Node.js】如何调试你的 Node.js 代码?
很多时候,我苦恼于 Node.js 的调试,只会使用 console.log 这种带有侵入性的方法,但是其实 Node.js 也可以做到跟浏览器调试一样的方便。
GopalFeng
2022/08/01
8.4K0
【Node.js】如何调试你的 Node.js 代码?
点击加载更多

相似问题

Node.js承诺递归

11

带有IO的异步node.js概念

13

Bluemix: Node.js + Watson概念扩展API

14

递归的概念

42

Node JS中的递归函数

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文