在Javascript中将对象传递给Callback

时间:2013-04-10 19:54:01

标签: javascript jquery asynchronous callback jquery-callback

我正在尝试使用回调编写函数 - 我想创建一个对象,然后在回调中访问该数据。

到目前为止,这是我的功能:

var getModelInfo = function(model, callback) {
      alert('called!')

      //This logs the correct model
      console.log(model);

      //The object I want to return
      return {
        "field1" : model.get("1"),
        "field2" : model.get("2"),
        "field3" : model.get("3"),
        "field4" : model.get("4")

      };

    }

    //Declared outside because I want to avoid 'this' issues
    var model_send = this.model;

    $(function() {
      alert('callback to be called')
      getModelInfo(model_send, function(data) {
        alert('call back called');

        // I want this to be the returned object
        console.log(data)

      });

    });

截至目前,'回调被称为'被叫'之前的警报',但'回叫被叫'永远不会发出警报。如何在回调中访问返回的数据?

如果我做其他任何错误,请随时告诉我!

1 个答案:

答案 0 :(得分:3)

您可以使用新数据调用callback,而不是将其返回:

var getModelInfo = function(model, callback) {
  alert('called!')

  //This logs the correct model
  console.log(model);
  callback({
    "field1" : model.get("1"),
    "field2" : model.get("2"),
    "field3" : model.get("3"),
    "field4" : model.get("4")
  });
}