gpt4 book ai didi

javascript - Chrome 扩展程序键盘快捷键需要按两次才能更改值

转载 作者:行者123 更新时间:2023-12-03 01:59:47 26 4
gpt4 key购买 nike

我在尝试实现 Chrome keyboard shortcuts 时遇到一个奇怪的问题我正在开发的 Chrome 扩展程序中的 API。简而言之,我必须按指定的键盘快捷键两次才能更改存储的值。

这是我的键盘快捷键监听器:

chrome.commands.onCommand.addListener(function(command) {
chrome.storage.sync.get([command], function(result) {
toggle = result[command];
});

toggle = toggle_value(toggle)

chrome.storage.sync.set({[command]: toggle }, function() {
console.log( {[command]: toggle} );
});
});

还有我的 toggle_value() 函数:

function toggle_value(value) {
if(value == 0) {
return 1;
} else if(value == 1) {
return 0;
}
}

我的键盘快捷键监听器接收 list 中设置的命令,从Chrome synced storage获取相同键名的相应值。数据库,切换该值,然后使用相同的 key 名称将其设置回 Chrome 同步存储。

如前所述,command 键的值只有在连续按下键盘快捷键 2 次后才会真正切换。我花了几个小时调试这个但没有运气,请帮助我。

最佳答案

问题。您使用的函数是异步的,但您的代码是同步运行的。如果嵌套,您的代码应该可以工作。

chrome.commands.onCommand.addListener(function(command) {
chrome.storage.sync.get([command], function(result) {
toggle = result[command];
toggle = toggle_value(toggle);
chrome.storage.sync.set({[command]: toggle }, function() {
console.log( {[command]: toggle} );
});
});
});

建议。您应该研究Promises以更优雅地处理异步代码。

关于javascript - Chrome 扩展程序键盘快捷键需要按两次才能更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50088011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com