三生烟火_tyson 2022-09-01 10:47 采纳率: 50%
浏览 33
已结题

nodeJS中写function调用接口 并返回获取的数据

nodeJS中写function调取接口 并返回获取的数据
async function getUser() {
         //获取UserID
         var datas ={CultureName: 'zh-CN', EntCode: '1001', OrgCode: 'SD001', UserCode: 'admin'}
         //bodyString  数据
         var arrList = {
             context : datas,
             appID:9221508317,
             pushProgram: "ASN单",
             senderSys: 1
         }

         var bodyString  = JSON.stringify(arrList)
         var options = {
             host: '10.108.21.13',
             port: 80,
             path: 'XXXXXXXXX',
             method: 'POST',
             headers:{
             'Content-Type':'application/json',
             'Content-Length':bodyString.length
             }
         };   
      var Remark;
     let req=http.request(options,function(res){
         res.setEncoding('utf-8');
     
         let UserresponseStringS = '';

             res.on('data', function(data) {
                // return data;
                 UserresponseStringS += data;
                 var responseStrings1 =  JSON.parse(UserresponseStringS) ;
                        var Strings1 =  JSON.parse(responseStrings1.d) ;
                        console.log('-----resBody-----',Strings1);
                        Remark = Strings1.Result;
                         console.log('-----Remark -----',Remark );  //Remark 可正常打印
             });
     
     res.on('end', function() {

     
     console.log('-----resBody-----',UserresponseStringS);
     });

     req.on('error', function(e) {
         // TODO: handle error.
         console.log('-----error-------',e);
         });
     });
     req.write(bodyString);
     req.end();

}

调用getUser()返回的值为undefined
我的解答思路和尝试过的方法
调用getUser()返回Reamrk的值
  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2022-09-01 10:53
    关注

    getUser返回Promise,然后整个async 函数await等待getUser的返回,调用这个新函数而不是getUser,示例如下

    
        async function getUserData() {//调用这个函数,不是直接调用getUser,需要数据的代码放到这个函数里面
            var data = await getUser();
            //后续的代码
        }
    
        function getUser() {
    
            return new Promise((resolve, reject) => {
                //获取UserID
                var datas = { CultureName: 'zh-CN', EntCode: '1001', OrgCode: 'SD001', UserCode: 'admin' }
                //bodyString  数据
                var arrList = {
                    context: datas,
                    appID: 9221508317,
                    pushProgram: "ASN单",
                    senderSys: 1
                }
    
                var bodyString = JSON.stringify(arrList)
                var options = {
                    host: '10.108.21.13',
                    port: 80,
                    path: 'XXXXXXXXX',
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json',
                        'Content-Length': bodyString.length
                    }
                };
                var Remark;
                let req = http.request(options, function (res) {
                    res.setEncoding('utf-8');
    
                    let UserresponseStringS = '';
    
                    res.on('data', function (data) {
                        // return data;
                        UserresponseStringS += data;
                        var responseStrings1 = JSON.parse(UserresponseStringS);
                        var Strings1 = JSON.parse(responseStrings1.d);
                        console.log('-----resBody-----', Strings1);
                        Remark = Strings1.Result;
                        resolve(Remark);///////////////////////////////////
                        console.log('-----Remark -----', Remark);  //Remark 可正常打印
                    });
    
                    res.on('end', function () {
    
    
                        console.log('-----resBody-----', UserresponseStringS);
                    });
    
                    req.on('error', function (e) {
                        // TODO: handle error.
                        console.log('-----error-------', e);
                    });
                });
                req.write(bodyString);
                req.end();
            })
        }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月9日
  • 已采纳回答 9月1日
  • 创建了问题 9月1日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加