javascript - 无法返回适当的值

标签 javascript arrays

<分区>

我是 JavaScript 的初学者。抱歉,如果我问了愚蠢的问题。这是我试图获取媒体元素列表的代码。

function getCams(){
  var media_list = [];
  MediaStreamTrack.getSources(function(sourceInfos){
    var i=0;
    while(i!=sourceInfos.length){
      if (sourceInfos[i].kind == 'video'){
        var temp = [];
        temp.push(sourceInfos[i].id);
        temp.push(sourceInfos[i].label);
        media_list.push(temp);
      }
      i++;
    }
    console.log(media_list);
  });
  return media_list
}

但是当我调用这个函数时它返回空白列表,但在 console.log(media_list) 中它记录了包含元素数据的列表。 可能是它异步运行,如果是这种情况,那么如何重写此函数以同步运行,以便我能够获取媒体元素列表?

如果不是这种情况,请指导我如何获得该列表。

最佳答案

如果是异步的,使用回调:

getCams(function(media_list) {
    // do stuff with media_list
});    

function getCams(callback){
  var media_list = [];
  MediaStreamTrack.getSources(function(sourceInfos){
    var i=0;
    while(i!=sourceInfos.length){
      if (sourceInfos[i].kind == 'video'){
        var temp = [];
        temp.push(sourceInfos[i].id);
        temp.push(sourceInfos[i].label);
        media_list.push(temp);
      }
      i++;
    }
    console.log(media_list);
    callback(media_list);
  });
}

关于javascript - 无法返回适当的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32346326/

相关文章:

javascript - 如何让这个功能发挥作用?

javascript - 当我添加数组时我破坏了这个JS

java - 将不同类型的类型从 txt 文件存储到 Java 数组

javascript - 如何获取数组的最后一个数字?

php - Perl 数组/哈希到 php

javascript - D3.js 饼图周围的 flex 文本

javascript - 更改事件不更新选择值

javascript - 将其他人的代码库从修订版 49 更新到当前版本

php - 将 MySQL 行与 PHP 数组值进行比较

Javascript 关联数组简写在 IE 中不起作用