gpt4 book ai didi

javascript - 如何正确使用 importScript() 并基于该脚本实例化一个新类?

转载 作者:行者123 更新时间:2023-11-28 08:29:18 35 4
gpt4 key购买 nike

我已经进行了广泛的研究,但我找不到 importScript() 如何为网络 worker 工作的好例子。让 Web Worker 运行没问题,但尝试让它创建新的 latLng 对象会导致错误“Uncaught ReferenceError:latLng 未定义”

网络 worker

importScripts("latLngReplace.js")

this.onmessage = (records)->

for record, i in JSON.parse(records.data) when record.shape? # loop through zip codes
console.log record.City+" at "+ i
for polygon in record.shape # loop through array of polygons (usually a zip code is one polygon)
zip_coords = []
for point in polygon.split(', ') # loop through all coords in a zip area
point_array = point.split(' ')

if point_array[1].split('.')[1]
lat=point_array[1].split('.')[1].length
else
lat=0
if point_array[0].split('.')[1]
lon=point_array[0].split('.')[1].length
else
lon=0
zip_coords.push new latLng(
parseFloat(point_array[1]).toFixed( lat ),
parseFloat(point_array[0]).toFixed( lon )
)


postMessage(zip_coords)

latLngReplace.js

class latLng
lat:null
lng:null
constructor:(latitude, longitude)->
console.log "creating a lat long object"
@lat=latitude
@lng=longitude

lat:=>
return @lat
lng:=>
return @lng
toString:=>
return "lat:"+@lat+", lng"+@lng
equals:(latlng)=>
if latlng.lat() == @lat and latlng.lng() ==@lng
return true
else
return false

我有什么遗漏吗?

最佳答案

经过一番折腾后,我找到的唯一解决方案是删除 importScripts 并附加 latLngReplace.js 的内容(从技术上讲,它是一个发布的咖啡文件,尽管它是一个与现实)到网络 worker 的底部。

当您想要将代码分开时,这几乎不是最佳解决方案,但这是我能想到的唯一解决方案。

如果将来有人找到一种以类似方式正确使用 importScripts 的方法,请随时在此处添加知识。

关于javascript - 如何正确使用 importScript() 并基于该脚本实例化一个新类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22045479/

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