2016-05-25 9 views
0

Я нашел похожие вопросы с различными предложениями, но я не могу заставить его работать. Некоторые говорят, что вы не можете этого сделать, а другие дают очень длинное решение, чтобы заставить его работать. Он возвращается и не определен.как использовать обещание Q с фильтром подчеркивания

Сервис

filterSubdivisions: (response) => { 
     var arry = []; 
     let deferred = Q.defer(); 
     arry = _.filter(response, (item) => { 
      if (item.status === 'A') { 
       item.color = 80; 
       item.status = 'Active'; 
       return item 
      } else { 
       item.color = 255; 
       item.status = 'Future'; 
       return item 
      } 
     }); 

     deferred.resolve(arry); 
     return deferred.promise; 
    } 

обслуживания вызовов

AuthService.get().then((result) => { 
     SubdivisionService.getSubdivisions(result.userId, result.token) 
      .then((response) => { 
       if (response) 
        SubdivisionService.filterSubdivisions(response) 
      }) 
      .then((res) => { 
       if (res) 
       SubdivisionService.loopSubdivisions(res) 
      }) 
      .then((response) => { 
       if (response) 
       StorageService.set('Subdivisions', response) 
      }) 
      .then(() => me.onGoHome()) 
      .catch(error => { 
       AlertService.error('subdivisions') 
        .then((error) => ErrorService.post(error)) 
        .then(() => me.onGoHome()) 
      }) 

    }) 
+0

Что именно вы пытаетесь сделать? 'filterSubdivisions' возвращает обещание, но вы никогда не добавляете обратный вызов'. then'. Плюс, вы * решите *, что обещаете сразу, так почему же даже использовал отложенные там в первую очередь? Можете ли вы объяснить, что вы пытаетесь сделать и что не работает так, как вы ожидаете? –

+0

Я только что обновил код. И я не могу поверить, что сделал это! положите его в ответ – texas697

+0

Итак, проблема никогда не включала '.then' в обещание, возвращенное из' filterSubdivisions'? –

ответ

1

Я не знаю, почему у вас есть filterSubdivisions() возвращение обещание, особенно если вы ее решения сразу же вместо того, чтобы делать какие-либо вид асинхронных действий , В любом случае, вы никогда не присоединяете обратный вызов .then() к этому обещанию.

Вы разрешаете его с фильтрованным массивом, но никогда не имеете обратного вызова для получения этих данных.

+0

Я привык к угловому решению всех обещаний, я сделаю еще немного чтения. благодаря! – texas697