我在memcached上使用了bluebird库。
memcached.set('foo', 'bar', 10, function (err) { /* stuff */ });
该函数不会在第二个参数中调用成功回调,因此看起来.then(res)函数没有被调用。
Promise.promisifyAll(memcached);
memcached.setAsync(hashedCacheKey, obj).then(function (res) {
resolve(res);
}).catch(function (err) {
reject(err, null);
});
我有什么办法可以处理未成功的事件?
这里的主要问题是您没有为提供超时参数memcached.setAsync
,但它是的强制参数memcached.set
。这两行是等效的:
memcached.set("foo", "bar", () => { /* this is never called */ });
memcached.setAsync("foo", "bar").then(() => { /* this is never called, either */ })
添加一个超时参数,您的代码应按预期工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句