Asynchronous 等待异步功能+;

Asynchronous 等待异步功能+;,asynchronous,wait,getusermedia,deviceid,Asynchronous,Wait,Getusermedia,Deviceid,我想得到最后一个设备ID 请在智能手机上尝试以下代码。 在函数“getConnectedDevices”中,变量deviceId ok。 但外部返回的是承诺,而不是变量deviceId。 如何获取变量deviceId 谢谢 米切解释: 您需要将警报包装在异步函数中,并使用wait。也可以从您需要的承诺中获取价值。然后()。希望下面的帮助 原始代码: 异步函数getConnectedDevices(){ var指数; const devices=wait navigator.mediaDevic

我想得到最后一个设备ID

请在智能手机上尝试以下代码。

在函数“getConnectedDevices”中,变量deviceId ok。 但外部返回的是承诺,而不是变量deviceId。 如何获取变量deviceId

谢谢 米切解释:

您需要将警报包装在异步函数中,并使用wait。也可以从您需要的承诺中获取价值。然后()。希望下面的帮助

原始代码: 异步函数getConnectedDevices(){ var指数; const devices=wait navigator.mediaDevices.enumerateDevices();
对于(var i=0;我也可以发布代码Hi Marcus,非常感谢您的帮助。我正在做的是一个移动web应用程序。我的问题是相机的deviceId有一个全局变量。如果我理解正确,变量deviceId只能在“async()”函数的“内部”访问。但是如何在“async()”之后访问该变量呢“功能?我找到的唯一解决方案是使用“localStorage.setItem”保存值,然后使用“localStorage.getItem”读取值。关于MichueUnderstand,我在市场上有一些Web AR应用程序,它们首先是移动的。我解决这个问题的方法是在react中使用redux(触发操作以更改deviceId上的视图)或者订阅一个可观察的Rxjs(在服务中),并使用全局状态管理应用程序流。也就是说,在deviceId处于状态之前不要查看y,返回到view x并获取deviceId。你在使用框架吗?我可能会在下周完成一个演示,展示如何执行此操作。作为(async()=>{window.deviceId=await getConnectedDevices().then();…})();您应该能够在不使用localstorage的情况下全局查看它。这是一种黑客行为,但在当时在此处存储全局变量是很常见的。但是,要读取此值,您需要对一些检查此值的requestAnimFrame循环进行检查,它将是未定义的,并在异步调用后进行定义。定义此值后,您可以继续使用应用程序流。