Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将获取的JSON对象存储到全局变量";?_Javascript_Html_Json_Http_Fetch - Fatal编程技术网

Javascript 如何将获取的JSON对象存储到全局变量";?

Javascript 如何将获取的JSON对象存储到全局变量";?,javascript,html,json,http,fetch,Javascript,Html,Json,Http,Fetch,我试图将“fetch”函数获得的JSON对象存储到一个全局变量中,但它在运行时似乎存在异步问题 function getCustomerId(name) { var output; fetch("url" + name) .then( function(response) { if (response.status !== 200) { console.log("Loo

我试图将“fetch”函数获得的JSON对象存储到一个全局变量中,但它在运行时似乎存在异步问题

function getCustomerId(name) {
    var output;

    fetch("url" + name)
    .then(
        function(response) {
            if (response.status !== 200) {
                console.log("Looks like there was a problem. Status Code: " + response.status);
                return;
            }
            response.json().then(function(data) {
                console.log("CustomerId:" + data.id); //I have a column in my database called 'id'
                output = data.id;
            });
        }
    )

    .catch(function(err) {
        console.log("Fetch Error :-S", err);
    });

    console.log(output);
}
现在返回的响应是:

undefined
CustomerId:A1234B123C 

尝试使用async/await执行此操作:

异步函数getCustomerId(名称){ var输出; let response=等待取数('https://jsonplaceholder.typicode.com/todos/1'); 如果(response.status!==200){ log(“看起来有问题。状态代码:”+response.Status); }否则{ const data=wait response.json() //log(“CustomerId:+data.id”); 输出=data.id; console.log(data.id) } 控制台日志(输出); }
getCustomerId()是。最后一个console.log(输出);需要在设置值之后进行。否则console.log(输出);将在您的呼叫返回数据之前执行。处理这个问题的最佳方法是,在结果返回时调用函数,然后运行依赖于返回数据的代码。但是我不确定你的用例。@Msterjojo yups谢谢!我一直在搜索堆栈页面,而你链接的页面提供了缺少的部分。我只是尝试了一下,但没有效果。在响应完成之前,console.log(输出)仍在运行。噢!我现在会检查它,对不起…我已经找到了解决方案,将发布它。谢谢你的支持!对不起,我迟到了,一点也没有:)