gpt4 book ai didi

JavaScript:异步取消 ondragstart

转载 作者:行者123 更新时间:2023-11-30 19:07:41 26 4
gpt4 key购买 nike

我有以下代码,它不起作用。

    export function makeDraggable(htmlElement: any, dotnetCallbackObject: any): void {
let onDragStart = async (event: any) => {
let mayDrag: boolean = await someAsyncFunction('MayDrag');
if (!mayDrag) {
event.preventDefault();
return false;
}
return true;
};
htmlElement.addEventListener('dragstart', onDragStart);
}

浏览器似乎没有等待异步功能完成,因此立即启用了拖动。我希望能够确定异步调用是否允许拖动。有办法实现吗?

最佳答案

事件处理程序是同步的,并且需要同步,以支持理智地冒泡和捕获。

您应该急切地缓存拖动的资格,并尝试在您的处理程序中访问该结果。

let isDraggable = false
getIsDraggable('maydrag').then((answer) => {
isDraggable = answer
})
const onDragStart = (event) => {
if (!isDraggable) {
event.preventDefault();
}
return isDraggable
}

关于JavaScript:异步取消 ondragstart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58826898/

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