2016-08-04 3 views
0

Я не смог получить свои соображения вокруг обещаний.Как вернуть обещание

У меня есть эта функция:

response(theResponse) { 
    return theResponse.json(); 
} 

theReponse.json() является код, который возвращает обещание.

Это работает и возвращает обещание, которое разрешается массиву.

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

Как это сделать?

+1

Ваш аргумент имеет то же имя, что и функция. Это не выглядит хорошо для меня. –

+1

Я не вижу никаких обещаний в вашем вопросе. Позаботьтесь об этом? – 4castle

+1

'return theResponse.json(). Then (arr => ...);' – zerkms

ответ

1

, если этот метод возвращает json() обещание, то вы можете использовать then()

response(theResponse) { 
    return theResponse.json().then(function(arr) { 
     //do something with arr 
     return arr; 
    }); // then() returns new promise so it can be chained 
} 

Проверка "обещание Цепочка" here.

+0

Спасибо, что работает. –

1

Вы можете создавать обещание трубопроводов с использованием Promise#then()

function response(theResponse) { 
    return theResponse.json().then(function(array) { 
    // process array 
    return array; 
    }); 
} 
1

Просто чтобы добавить другие ответы, вы всегда должны ловить свои обещания, чтобы ошибки не «проглатывались».

response(theResponse) { 
    return theResponse 
      .json() 
      .then(arr => arr) // handle resolve 
      .catch(err => err); // handle reject 
} 
Смежные вопросы