javascript - 在ajax成功方法中返回未定义

标签 javascript ajax

我在这里遇到一个问题,在 AJAX 的成功方法中,我有一个 if 来查看 Streamer 是否处于事件状态,如果是事件状态,则返回“online.png”,如果不是,则返回“offline.png”。 png”,我的问题是返回结果为“未定义”,但如果我取消注释控制台中的 console.log,我可以在控制台上看到“offline.png”或“online.png”(但返回结果仍为未定义)。 有人已经解决了这个问题吗?谢谢

function checkOnline(nombre){

  try {


$.ajax({
  type: 'GET',
  url: 'https://api.twitch.tv/kraken/streams/' + nombre,
  headers: {
    'Client-ID': '
  },
  success: function(data) {
  //  console.log(data["stream"]);
    if (data["stream"] == null) {
      return "offline.png";
      break;
    //  console.log("offline.png");
    }else {
      return "online.png";
      break;
      //console.log("online.png");
    }
  },
  error: function(data){
    alert("Stream not found!");
  }

});
  } catch (e) {
    alert("Conection error, try later... Monkeys are fixing it");
  }


}

最佳答案

在此上下文中不需要 returnbreak。异步请求中无法返回任何内容,并且您没有处于迭代中,因此没有什么可以打破的。

函数 checkOnline 总是会返回 undefined,因为它是异步调用,它无法中断并返回请求的结果。

如果您想对数据执行某些操作,可以直接在回调方法中执行。

关于javascript - 在ajax成功方法中返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48956606/

相关文章:

php - POST 数据中未拾取附加元素

javascript - 如何保持 div 大小静态,即使其中文本的字体大小发生变化

php - jQGrid 与 Oracle 数据库

javascript - CORS 请求与 Safari 一起使用吗?

javascript - 根据第 2 页中的文本框值禁用第 1 页中的按钮(AJAX、PHP、jQuery)

javascript - Laravel 5.2 - 在 ajax 请求后从 Controller 返回 View

javascript - Webpack 条件要求

javascript - jPlayer + Bootstrap Modal - DOM 问题

javascript - 如何使用 javascript 循环 JSON 响应

javascript - asp.net mvc vs javascript 构建整个站点