Skip to content

[Feature] GM_setvalue提供原子替换操作 #1097

@polyproline

Description

@polyproline

功能描述

不同页面脚本同时进行进行 GM_getValue,然后使用 GM_setValue往里面添加数据,可能导致部分页面添加的数据丢失。能否提供原子的比较替换api避免出错

使用场景

多个页面同时进行GM_getValue,GM_setValue操作

// critical area
do{
let value = GM_getValue('foo','');
newval = do_something(value);
}while(GM_compare_and_setValue('foo', newval, value) == 0);
// 

附加说明

GM_compare_and_setValue(name, newval, oldval): bool
仅当当前name 的value等于oldval 才将name 设置为newval,并将返回结果true,否则返回false

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions