![]() | 1 Livid MOD OP PRO |
![]() | 2 jybox 2014-05-06 09:00:30 +08:00 ![]() getCache = (name, setter, callback) -> memcached.get name, (err, result) -> if result callback result else setter (result) -> memcached.set name, result, -> callback result |
![]() | 3 jybox 2014-05-06 09:01:05 +08:00 ![]() |
![]() | 4 ine181x 2014-05-06 09:05:31 +08:00 via iPhone ![]() |
![]() | 5 Xe0n0 2014-05-06 09:05:59 +08:00 ![]() |
![]() | 6 refresh 2014-05-06 09:08:30 +08:00 ![]() async, Q, promise |
![]() | 7 vfasky 2014-05-06 09:08:48 +08:00 ![]() windjs 可以做到 python 的 yield http://windjs.org/cn/docs/async/method.html 但很多人不喜欢 eval, 其实 windjs 是可以像 coffee 一样预编译的。 但是 windc 一直没进度。 老赵可能放弃了。 可惜啊! ECMAScript 6 看来短期不会成熟 |
8 mytharcher 2014-05-06 09:09:13 +08:00 ![]() 用Promise,async queue,或者直接ES6的yeild |
9 mytharcher 2014-05-06 09:10:53 +08:00 不好意思,拼错了,是yield |
![]() | 10 chone 2014-05-06 09:13:30 +08:00 via Android Promise A+ 应该是最适用的。 |
![]() | 11 Xe0n0 2014-05-06 09:14:58 +08:00 如果使用 Promise,结果应该类似 http.get(url).then(function(data){ if (A in data) return data[A]; else reject("key A not exists"); }).then(JSON.parse).then(function(object){ ... }).catch(function(error_code){ ... }); 可以写成 chain 的形式,这里把可能的错误都 catch 了,如果不需要可以写得更短。 |
![]() | 12 NemoAlex 2014-05-06 09:34:11 +08:00 没有什么好办法,用 callback 的形式就是这么憋屈,用 promise 好看一点,也没好到哪去 |
![]() | 13 rannnn 2014-05-06 09:50:06 +08:00 我用 flow.js 完成后call this就会进行下一个function flow.exec( function() { setTimeout(this, 200); },function() { setTimeout(this, 200); },function() { // done } ); |
![]() | 14 est 2014-05-06 10:08:42 +08:00 ![]() |
![]() | 15 WildCat 2014-05-06 10:21:36 +08:00 via iPhone 借贴提问, Eventproxy, Async, Promise的用途是否类似? |
![]() | 16 lloydsheng 2014-05-06 10:34:21 +08:00 消除callback最流行的方法 https://www.npmjs.org/package/q |
![]() | 18 luin 2014-05-06 10:39:57 +08:00 |
![]() | 19 aisk 2014-05-06 10:56:30 +08:00 Iced Coffee拯救世界 http://maxtaco.github.io/coffee-script/ |
![]() | 20 chemzqm 2014-05-06 11:05:09 +08:00 ![]() @vfasky 作者感受到 co https://github.com/visionmedia/co 的强大之后不再开发了,这是我见过最优雅的异步实现方式,没有 node 0.11 可以使用 regenerator https://github.com/facebook/regenerator |
![]() | 21 cfddream 2014-05-06 11:09:46 +08:00 楼上都把几种常用姿势说了,选择自己喜欢的、统一、好维护的风格。 |
![]() | 22 bear 2014-05-06 11:18:59 +08:00 感觉Promise方式好像解决不了楼主的问题,它每次都会发出请求,而楼主是希望当内存里有,就不去请求,难道是我对Promise理解有误? |
![]() | 23 virushuo 2014-05-06 12:09:14 +08:00 callback或者 promise https://www.promisejs.org |
![]() | 24 cfddream 2014-05-06 13:31:11 +08:00 https://github.com/petkaantonov/bluebird 注重性能可以试试这个 |