下面的代码正在工作,但我对方法的责任感并不满意。我试图保持方法浅薄和“单一职责”,但他们仍然做了太多不同的事情国际海事组织。重构异步CoffeeScript AJAX
在同步世界我将有三个方法:
- doajax(URL),该返回响应
- 解析(响应),该返回数据的创建阵列
- 平局(数据)与阵列图
但我不知道如何在这种异步情况下做到这一点。任何线索如何重组?将有若干图片,我希望能够用新数据更新给定的图形,而无需创建一个新的,所以会出现像updateGraph的方法(graphId,newData)
doajax = (url) ->
$.ajax
url: url
dataType: 'html'
success: (response) ->
parse response
parse = (response) ->
xmlDoc = $.parseXML(response)
xml = $(xmlDoc)
arr = []
xml.find('S').each ->
timestamp = new Date($(this).attr('T'))
value = parseFloat($(this).attr('AI1'))
arr.push [timestamp, value]
draw arr
draw = (data) ->
new Dygraph($('#graph1')[0], data,
// options..
)
doajax 'http://api.example.com/stats.xml'
这就是我正在寻找的。我已阅读延期/承诺,但不能将其应用于我的代码,因为我对JS很新手。谢谢Bergi! – eik3