有人知道为什么我的代码总是在回调中返回 undefined 变量。从api文档中可以看出它在chrome 34中是稳定的,我已经将我的chrome更新为chrome 34但仍然得到了未定义的值。
chrome.desktopCapture.chooseDesktopMedia(
["screen", "window"],
function (streamId) {
console.log(streamId); //always returns undefined.
});
顺便说一句,我使用的是Ubuntu 32位,带有chrome版本34.0.1847.132
答案 0 :(得分:0)
Chrome总是会触发回调,即使它有异常也是如此。您必须检查chrome.runtime.lastError
:
chrome.desktopCapture.chooseDesktopMedia(
["screen", "window"],
streamId => {
if(chrome.runtime.lastError)
console.error(chrome.runtime.lastError);
else
console.log(streamId);
});
或者,您可以使用异步/ Promise包装器库,如chrome-extension-async
,以便您可以捕获await
异常:
try {
streamId = await chrome.desktopCapture.chooseDesktopMedia(["screen", "window"]);
console.log(streamId);
}
catch(err) {
console.error(err);
}