Mam pewne problemy z przekazywaniem parametrów przez łańcuch obietnic, który skonfigurowałem. Oto podstawowy przykład tego, co próbuję zrobić.Przekazywanie parametrów do łańcucha obietnic
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');
});
W drugiej obietnicy użytkownik parametr jest niezdefiniowany, w jaki sposób można przekazać wiele parametrów poprzez łańcuch obietnica, jak te obietnice kontynuować więcej informacji zostanie dodany do łańcucha, do końca mnie to przechodzącej 5 wartości do ostatniej obietnicy.
Czy powinienem używać operatorów ES6 do łączenia ich w obiekty i dekonstruowania ich przy każdym wywołaniu? na przykład return resolve({request, user})
, a następnie const { request, user } = param
tak, masz rację, 'resolve' i' reject' powinny otrzymać jeden parametr. –
Nie możesz po prostu użyć '.then (request => printPassword (request, dummyUser))'? – Phil
Należy zauważyć, że nie należy w ogóle używać obietnic, gdy tylko synchronicznie rozwiązuje się z wartością. – Bergi