Js 线程锁 navigator.locks

2024-07-17  本文已影响0人  板栗炖牛肉

前言

解决方案

const Test = () => {

    const implement = (name) => {
        // navigator.locks.request(name, asynchronous); //与下方函数相等
        navigator.locks.request(name, {mode: "exclusive"}, asynchronous);

        async function asynchronous(lock) {
            console.info('步入1', lock)
            await new Promise((r, j) => {
                console.info('步入2', lock)
                setTimeout(() => {
                    r();
                }, 3000)
            }).then((value) => {

            }).finally(() => {
                console.info('模拟完成')
            })
        }
    }

    return (
        <div>
            <Button onClick={() => implement("111")}>测试锁1</Button>
            <Button onClick={() => implement("222")}>测试锁2</Button>
        </div>
    );
}
上一篇 下一篇

猜你喜欢

热点阅读