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的值

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();
        })
    }


这样定义

async function getUser() {
    return new Promise ((resolve) => {
        //获取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();
    })
}

然后这样获取

getUser().then(res => {
    console.log('remark', res)
})
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632