我的代码如下。我希望里面的代码在configureMission()
运行之前完成运行mapSurface
。这似乎没有发生。
missionCommands = "" # you don't have a mission yet
$('#startExploration').click -> # Set #missionControl as input for game configuration
configureMission()
mapSurface()
configureMission =->
$('#MissionControl').on "submit", ->
# cool helper function shamelessly pinched from http://jsfiddle.net/sxGtM/3/
$.fn.serializeObject = function() # not shown
missionCommands = JSON.stringify($('form').serializeObject())
return false #stops click event from firing
mapSurface =->
console.log('map')
console.log(missionCommands)
我注意到,如果我再次提交表单,missionCommands
变量已经用 json 数据更新,所以看起来表单数据已经被处理,但是这是在第二个函数运行之后发生的。
map login.js:60
login.js:61
map login.js:60
{"xMaximum":"","yMaximum":"","xCoord":["iuoiuyi",""],"yCoord":["",""],"orientaiton":["",""]} login.js:61
mapSurface
我可以通过在函数内部移动函数来使其工作configureMission
,但这似乎是一种不好的形式。我想知道,是否有更正确的模式可以用来实现我想要的将表单数据处理为 json、将其设置为变量并将变量传递给第二个函数的结果。