首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使此Javascript API响应的输出成为全局的?

如何使此Javascript API响应的输出成为全局的?
EN

Stack Overflow用户
提问于 2020-07-10 20:56:08
回答 5查看 215关注 0票数 0

我正在尝试接收以下代码的输出,其中cc变量会将一个值记录到空的全局国家变量中。然后将其打印到控制台,但是它不起作用。如何将本地变量cc设置为global /为全局变量country赋值?

代码语言:javascript
运行
复制
var country = '';
fetch('https://extreme-ip-lookup.com/json/')
.then( res => res.json())
.then(response => {
    var cc = (response.countryCode);
    country = cc;
 });
 console.log(country);

EN

Stack Overflow用户

发布于 2020-07-10 21:17:13

你的问题来自于你的fetch是一个异步函数,带有一个promise。

你想做的是(我想)

代码语言:javascript
运行
复制
var country = '';
//then
fetch('https://extreme-ip-lookup.com/json/')
.then( res => res.json())
.then(response => {
    var cc = (response.countryCode);
    country = cc;
 });
//then
console.log(country);

但是,由于您使用的是异步函数,因此将执行以下操作:

代码语言:javascript
运行
复制
//first
var country = '';
//second
fetch('https://extreme-ip-lookup.com/json/')
.then( res => res.json())
.then(response => {
    //fourth
    var cc = (response.countryCode);
    country = cc;
 });
//third
console.log(country);

如何解决这个问题?视情况而定。如果您的console.log是由按钮触发的,请让它等待国家/地区被填写

否则,将您的代码放在最后,或者使用Promise.all() (documentation here)

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62834790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档