nodejs的request第三方库,能否直接获取返回值?

发布于 2022-09-05 08:37:35 字数 726 浏览 14 评论 0

我使用request来获取页面信息,但是我想将页面中获取的信息直接赋值给某个变量,
应该如何实现?

let audio = request('http://103.10.1.132:9527/api/get/song/netease?id='+'30394771',
              (error1, response1, body1) => {
                if(!error1 && response1.statusCode == 200) {
                  if(JSON.parse(body1)['success'] == true){
                    // 成功则返回正常数据
                    return JSON.parse(body1)['url'];
                  }else{
                    // 失败
                    return "none";
                  }
                }else{
                  // 失败
                  return 'none';
                }
              });

我直接这么写,但是返回的不是我想要的return JSON.parse(body1)['url'];

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

屋顶上的小猫咪 2022-09-12 08:37:35

给跪,这是nodejs,异步啊,又不是Java,而且你在回调函数里返回,那怎么能返回到外面呢?
异步的做法要嘛是用回调传值,要嘛用事件比如event来传值。

看春风乍起 2022-09-12 08:37:35

基础不牢

var request = function(url, callback) {
    // some http request logic;
    callback('transport message');
    return {
        data: 'this is request function'
    };
};

let audio = request('', function(msg) {
    return {
        msg,
        data: 'this is callback'
    };
绻影浮沉 2022-09-12 08:37:35

给你贴一段我的代码吧

exports.areacode = async function (latitude,longitude) {
    return new Promise((resolve, reject)=>{
        let yesUrl = " http://gfapi.mlogcn.com/function/v001/poi?lonlat=" + latitude + "," + longitude + "&key=" + key_string
        request(yesUrl, function(error, response, body) {
            if (!error && response.statusCode == 200) {
                resolve(body)
            }
        });
    });
}
 let areacode = await areacode(latitude, longitude).then(function (req) {
                return JSON.parse(req).location.areacode
            })

可以成功用areacode接收到返回值,希望对你有帮助

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文