0

我有这个问题 - 我想做多个 AJAX 请求,但我需要在第一个成功完成时发送第二个请求。

我尝试使用jQuery Defered对象、jQuery.when()jQuery.then()方法,但是...(((

最后我使用了这个插件 - https://github.com/dio-el-claire/jquery.waterfall。但我不能那样做。因为,据我了解,使用此插件时,所有返回的数据都同时输出。

比如在http://www.wolframalpha.com

感谢提前!

对不起,我的英语不好)

4

1 回答 1

1

使用 ajax 调用的成功部分。您可以在那里放置一个函数来处理返回的数据。您还可以处理错误。

我这样做是伪咖啡脚本,但希望它会有意义。

jQuery(() ->
  window.App = {};
  window.App.behaviors = [];
  window.App.behaviors.push(ComposableBehavior.new());
)

class ComposableBehavior(() ->
  getData: ((url,successFunction, errorFunction) ->
    $.ajax(
      url:url,
      type:'GET',
      data: {this: "that"},
      success: (data) =>
        successFunction(data)
      error: (errorData) =>
        errorFunction
      )
    )
  )
  initialParse: ((data) ->
    thePlayer = JSON.parse(data)
    //updatePlayerUi(thePlayer)
    @getScores(thePlayer)
  )
  getScores: ((thePlayer) =>
    getData('player/'+thePlayer.id+/'scores', @displayScores, @uhOh)
  )

  displayScores: (data) =>
    //updateScoreUi(data)

  uhOh: (errorData) =>
   // displayError(errorData)
)

希望有帮助。

于 2013-04-03T17:55:09.533 回答