function prepareParams(user) {
var deferred = Q.defer();
var params = _.pick(user, 'email', 'password');
_.extend(params, {
grant_type : 'password',
client_id : 'client_id',
client_secret : 'client_secret'
});
return deferred.promise;
deferred.resolve(params);
}
Я хочу использовать эту функцию в цепочке обещаний, но она не возвращает значение.Как написать функцию JS, которая возвращает обещание библиотеки Q с правильным значением?
prepareParams(userParams))
.then(function(params) {
// ERROR!!! params == undefined
}
Невозможно написать синхронный код с помощью обещаний, нет. Но код, который вы показали, должен работать в основном, если встречный вызов встречается, он будет вызываться с объектом, который не является 'undefined'. – Bergi
У вас есть некоторые синтаксические ошибки в вашем вызове 'then', и в основном ваша проблема, похоже, заключается в том, что вы пытаетесь« разрешить »отложенное после« return », поэтому оно никогда не выполняется. – Bergi