【问题标题】:How to make a request wait in javascript? [duplicate]如何在javascript中使请求等待? [复制]
【发布时间】:2021-08-06 08:49:58
【问题描述】:

您好,我正在尝试通过 openwheather api 获取天气并将其发布在网页上。 但是,在测试的过程中,我发现了一个可能导致问题的部分。

var my_weather = {};
request.get(
  "http://api.openweathermap.org/data/2.5/weather?lat=37.3578631&lon=126.9395806&appid=40e3257323ba173186324d66fac45a1f",
  function (req, res) {
    data = JSON.parse(res.body);
    my_weather.weather_main = data.weather[0].main;
    my_weather.temp = Math.round(data.main.temp - 273);
    my_weather.humidity = data.main.humidity;
    console.log(my_weather);
  }
);

console.log(my_weather);

这段代码执行时,请求函数中的console.log()之前执行了外层console.log(),并显示一个空对象。如何在上面的代码中等待天气保存,然后执行下面的代码。有没有?我尝试使用异步等待,但它不起作用,所以请告诉我如何

【问题讨论】:

  • 感谢您的帮助!
  • 您不能让 Javascript “等待”非阻塞、异步操作(例如网络请求)完成。相反,您必须使用回调、promise 或事件将完成返回给调用者。同时,该函数将在异步操作完成之前返回,调用者将使用回调、承诺或事件来了解操作何时完成以及最终结果是什么。有关您所拥有选项的完整说明,请参阅标记为重复的问题。
  • 我会根据您所说的了解更多信息,谢谢

标签: node.js asynchronous request


【解决方案1】:

您需要使用await,更多信息可以找到here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-26
    • 2017-07-05
    • 2022-01-07
    • 2016-04-26
    • 2023-04-10
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多