У меня возникли проблемы с передачей параметров через цепочку обещаний, которую я установил. Вот основной пример того, что я пытаюсь сделать.Передача параметров в цепочку обещаний
var dummyReq = { client: null };
var dummyUser = { email: '[email protected]', password: 'admin' };
function printEmail(request, user) {
return new Promise((resolve, reject) => {
console.log('Email:', user.email);
return resolve(request, user);
});
}
function printPassword(request, user) {
return new Promise((resolve, reject) => {
console.log('Password:', user.password); // <-- user is undefined
return resolve(request, user);
});
}
printEmail(dummyReq, dummyUser)
.then(printPassword)
.catch(function(error) {
console.log('Unexepected error has occured');
});
Во втором обещании пользователь параметр не определен, как я могу передать несколько параметров через обещание цепь, так как эти обещания продолжать больше информации добавляется к цепочке, к концу этого я передаю 5 ценности до последнего обещания.
Должен ли я просто использовать операторы ES6, чтобы объединить их в объект и деконструировать их при каждом вызове? например return resolve({request, user})
, а затем const { request, user } = param
Да, вы правы, 'resolve' и' reject' должны получать один параметр. –
Не можете ли вы просто использовать '.then (request => printPassword (request, dummyUser))'? – Phil
Обратите внимание, что вы не должны использовать обещания вообще, когда вы только синхронно разрешаете значение. – Bergi