Tôi đang gặp một số vấn đề khi truyền tham số thông qua chuỗi lời hứa mà tôi đã thiết lập. Đây là một ví dụ cơ bản về những gì tôi đang cố gắng làm.Truyền tham số cho chuỗi lời hứa
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');
});
Trong lời hứa thứ hai người dùng tham số là undefined, làm thế nào tôi có thể vượt qua nhiều tham số thông qua một chuỗi lời hứa, vì đây là những lời hứa tiếp tục có thêm thông tin được thêm vào dây chuyền, bởi phần cuối của nó Tôi đang đi qua 5 giá trị thông qua lời hứa cuối cùng.
Tôi có nên sử dụng toán tử ES6 để kết hợp chúng thành đối tượng và giải mã chúng trên mọi cuộc gọi không? ví dụ: return resolve({request, user})
và sau đó const { request, user } = param
có, bạn nói đúng, 'resolve' và' reject' sẽ nhận được một tham số. –
Bạn không thể đơn giản sử dụng '.then (request => printPassword (request, dummyUser))'? – Phil
Lưu ý rằng bạn không nên sử dụng lời hứa ở tất cả khi bạn chỉ giải quyết đồng bộ với một giá trị. – Bergi