Хотя я уже давно знаю обещания, я действительно только начинаю их использовать (или создавать) совсем недавно.Обещания/A - запись функции, которая соответствует обещаниям
Мое требование - создать функцию, совместимую с обещаниями, чтобы вызывающий мог вызвать, а затем связать ее с другими вызовами функций.
простая функция, как это ...
/**
* Checks if a user is available in cache. If avaialble, returns
* the hash object of this user. If the cache is not enabled, or
* the user is not found in cache, it returns null object.
*
**/
function chkUserInCache(username, password, done) {
var cacheKey = "partner:" + username;
if (cache == null) return done(null);
// Look for the user in the cache.
cache.hgetallAsync(cacheKey).then(function(result){
if (result === null) return done(null);
else return done(null,result);
});
}
И вызываемая функция будет называть как:
chkUserInCache(u,p)
.then(result) {
// do something
}).catch(function(e){
// do something
});
В настоящее время один из способов я знаю, чтобы использовать Bluebird обещание, а затем вызвать promisify по моей функции, чтобы получить объект функции, совместимый с обернутым обещанием.
Но если у меня много таких функций (скажем, от 6 до 10), я должен продолжать называть promisifiy на каждом из них и хранить возвращаемые объекты где-нибудь и использовать его?
Или есть ли другой способ? Или, есть ли собственный способ написания обещания совместимый код?
Для простого использования10 полезных функций, какой был бы лучший подход, если таковой имеется?
Да, точно, я искал такого рода 3-й линии, которая говорит «вернуть Promise.resolve (значение), все еще имея некоторые похмелья Probs пытаются vade в javascript обещает, исходя из ac/C++/java background :) –