node跨域获取数据,然后怎么将获取的数据赋给外部的一个变量?

现在需要跨域获取数据,但是我现在找到的方式都是异步的,没办法把获取的数据拿到函数外部使用。
需要解决的问题就是跨域获取数据,然后可以return出来;

function b() {
        var c = f('www.xxx.com/index.php');
        return c;
}
var d = b();
//可实现c的值赋给d,是f()获取的值,不是promise对象
//只要能实现跨域获取值,并能赋值给一个变量即可,方法不限

阅读 4.1k
3 个回答

fetch获取数据肯定是异步的

var v; //定义外部变量

fetch(url).then(function(response) {
  response.text().then(function(responseText) { 
     //在异步方法的回调中赋值
     v = responseText;

  })
}, function(error) {

})

补充:

如果你用到了ES6、7可以这么做:

let d;
async function b() {
    const c = await fetch('www.xxx.com/index.php');  //这里fetch返回一个Promise
    d = c;
}
b();

做了个测试:

const fetch = url => {
    return new Promise(resolve=>{
        //延迟,模拟异步操作
        setTimeout(()=>{
            resolve(url); //将url作为结果返回
        },1000);
    });
};

const b = async function() {
    const c = await fetch('www.xxx.com/index.php');  //这里fetch返回一个Promise
    console.log(c);  //输出www.xxx.com/index.php
    return c;
};

let d = b();
console.log(d); //输出Promise对象

异步获取数据使用promise返回,例如:

  return new Promise((resolve, reject) => {
            axiosFetch.fetchPost('/user/bankCard/support', parmas).then(responseData => {
                return resolve(responseData);
            });

node建立后台,服务端访问并获得数据,自己读取自己的服务器避开同源策略。(之前回答的,事后想想不对,又不能删,先就改成这样吧。。。。。)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题