2014-04-28 3 views
1

내 코드가 항상 콜백에서 변수을 반환하는 이유를 아는 사람이 있습니까? API 문서에서 크롬 34에서 안정적이라고 말했고 크롬 34로 크롬을 업데이트했지만 아직 정의되지 않은 값을 얻습니다. 32 비트 크롬 버전의 우분투를 사용하고있는 방법으로chrome.desktopCapture.chooseDesktopMedia 콜백이 항상 반환 됨 정의되지 않음

chrome.desktopCapture.chooseDesktopMedia(
    ["screen", "window"], 
    function (streamId) { 
     console.log(streamId); //always returns undefined. 
    }); 

는 34.0.1847.132

+0

두 관찰 :

chrome.desktopCapture.chooseDesktopMedia( ["screen", "window"], streamId => { if(chrome.runtime.lastError) console.error(chrome.runtime.lastError); else console.log(streamId); }); 

은 또한 당신이 await 예외를 잡을 수 있도록 chrome-extension-async 같은 비동기/약속 래퍼 라이브러리를 사용할 수 있습니다 : 당신은 chrome.runtime.lastError를 확인해야 내가 보고서를 보았다 그것은 그 현재 일반적으로 Linux에서는 작동하지 않으며, 다음과 같은 고려 사항이 있습니다. http://stackoverflow.com/a/18539415/934239 도움이되는지 확인하십시오. – Xan

+0

방금 ​​크롬 37으로 업데이트되었으며 Windows 8.1에서도 같은 문제가 발생했습니다. 다음은 문서 링크입니다. https://developer.chrome.com/extensions/desktopCapture –

답변

0

크롬은 항상 예외가있다하더라도, 콜백을 발생합니다.

try { 
    streamId = await chrome.desktopCapture.chooseDesktopMedia(["screen", "window"]); 
    console.log(streamId); 
} 
catch(err) { 
    console.error(err); 
} 
관련 문제