Javascript 如何异步使用u.some
有没有异步使用的方法?下面是我试图切换到异步方法的代码片段,以防止它引起超时问题Javascript 如何异步使用u.some,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,有没有异步使用的方法?下面是我试图切换到异步方法的代码片段,以防止它引起超时问题 DLClear = function( obj, squarePt ) { var wallPaths = findObjs( { _type : 'path', _pageid: obj.get('pageid'), layer : 'walls' } ); var landingPt = [ obj.get('left'
DLClear = function( obj, squarePt ) {
var wallPaths = findObjs( {
_type : 'path',
_pageid: obj.get('pageid'),
layer : 'walls'
} );
var landingPt = [ obj.get('left'), obj.get('top'), 1 ];
var wallSegments = PathMath.toSegments( wallPaths );
var squareSeg = [ landingPt, squarePt ];
var blocked = _.some( wallSegments, function( wallSeg ) {
return PathMath.segmentIntersection( squareSeg, wallSeg );
} );
return !blocked;
},
我为之编写的平台使用javascript ES7,因此async/await是可用的
感谢所有的帮助
Scott您可以使用为Node.js和本例设计的库。每个函数都会对您有所帮助。异步代码在这里对您没有帮助,因为您的DLClear函数和u。有些函数不是IO绑定的,而是繁忙的函数。如果您的代码在您的环境中执行时间过长,则表明您使用的算法效率低下。分段相交函数的作用是什么?wallSegments阵列有多大?这是用于虚拟桌面VTT游戏平台的脚本。segmentIntersection确定传递给它的线段是否在任何点相交。wallSegments数组的大小不是固定的。这取决于用户在VTT上创建了多少墙段,因此可以是一个入口,也可以是几百或几千个,这可能是夸张的说法。我知道u。有些不是我最终会使用的,但有没有办法我可以将其切换为使用类似u的东西?延迟等待调用堆栈完成后再运行?不幸的是,该库在平台上不可用,我无法安装其他库。@ScottCasey什么平台?如果您有特定的要求,最好提供特定的信息,例如,如果问题是您不想阻止用户界面,平台可能会提供某种形式的服务工作者或衍生。@DaveNewton平台上的是Roll20API@ScottCasey这不是在浏览器中运行吗?@DaveNewton是的,它都是基于浏览器的。您可以运行自定义脚本来添加功能。