2013-03-11 5 views
1

Я использую $.getJSON() и пытаюсь вернуть данные, используя различные ароматы кода ниже:Возвращаемых данных JQuery объекта обещает

var changeUserPage = function (id) { 
     return repository.getUserPage(id).done(function (data) {    
      // console.log(data) 
     }) 
} 

Проблема заключается в том, что, хотя внутри проделанной функции, я могу видеть, правильно я данные хочу, я не могу вернуть его к моей вызывающей функции, как:

var data = dataContext.changeUserPage(lastPolicyWorkedOn); 

тока данных содержит объект обещания:

Object {readyState: 1, setRequestHeader: function, getAllResponseHeaders: function, getResponseHeader: function, overrideMimeType: function…} 

EDIT

Метод getJSON выглядит следующим образом:

var getUserPage = function (policyId) { 
     policyId = encodeURIComponent(policyId); 

     var uri = "http://localhost:54997/api/policy/getUserPage/" + policyId; 
     return $.getJSON(uri);   
} 

Как лучше вернуть фактические данные JSon?

Благодаря

Davy

+1

трудно дать решение с текущим кодом публикуемым. Можете ли вы также опубликовать getJson? – Jai

+0

@Jai. Я добавил метод getJSON.thanks – davy

+0

Итак, что вы ожидаете от этого URL-адреса? – Jai

ответ

2

Это не будет возможным changeUserPage возвращать данные, так как данные извлекаются с помощью метода async$.getJSON.

Изменить

var data = dataContext.changeUserPage(lastPolicyWorkedOn); 

в

dataContext.changeUserPage(lastPolicyWorkedOn).done(function(data){ 
    //do something with data 
}); 
+0

Спасибо Аруну за четкий ответ. Я хотел оставить данные «обещания» подальше от модуля, где находится код вызова, но я думаю, что с моим текущим дизайном я не могу этого сделать. Еще раз спасибо. – davy

Смежные вопросы