希望大神别喷我,别打我,问题如下:
如何让mysql异步里的option return成为checkname的返回值。不使用callback。
现在这样写就直接返回定义的null了,内部还没来得及执行。
求指导,谢谢
回复 (21)
C
本来callback就是一大特色,而JS自己想美化这个问题,都一直没有非常优雅的方式,
S
引用 fangker@captainblue2013 因为前面有个function longRunningTask() { var value1 = yield step1(); var value2 = yie...
@fangker generator yield都用了,果断用Promise啊
F
引用 captainblue2013为什么一定要return 自豪地采用 CNodeJS ionic
@captainblue2013 因为前面有个function* longRunningTask() { var value1 = yield step1(); var value2 = yield step2(value1); var value3 = yield step3(value2); } 这样的东西,每个函数要有返回值
F
F
F
引用 alsotang@gzhangzy 是的呀。要就一直 callback,要就用 generator 统一掉,它这么混着写看起来比各种写法都乱。
@captainblue2013 看了es6那个流程规划就想玩一玩....
A
引用 gzhangzy@fangker 你这是什么乱七八糟的,读个文件让你变成遛弯了。
@gzhangzy 是的呀。要就一直 callback,要就用 generator 统一掉,它这么混着写看起来比各种写法都乱。
M
@fangker
你用Generator和Promise是可以的。你这段代码就是co的简版。你去看一下co的源码就知道了。
G
@fangker 你这是什么乱七八糟的,读个文件让你变成遛弯了。
1
可以看看我写的这个,优点就是简单,https://cnodejs.org/topic/571a291535af8a704195f2d3
C
为什么一定要return 自豪地采用 CNodeJS ionic
F
@gzhangzy @WelkinWong @manxisuo
M
不能,因为这是违反大自然规律的。
你想“马上立即立刻”获取一个“将来”才能得到的东西,可能吗?
为什么闭包也不行?
因为:闭包能做到的是将本轮事件循环中的值保存下来,给回调函数用(后续的事件循环)。本质上还是保存现在的东西给将来用,跟你的需求正好相反。闭包貌似是个很高深的东西,但它不是万能的!
F
W
引用 fangker@WelkinWong 用闭包,不能解决么?
@fangker 没看懂,再怎么闭包,你也不能把异步改成同步的吧,你可以给 checkname return一个promises 接口,当然最终使用者也是需要用 callback function 来取数据
F
W
既然是异步,说明就不能直接 return,如果你需要并行串行之类的,只能使用 Promises、Async 之类的来解决
F
10元红包求解决方案。
G
真没有!
F
G
这个真没有
参与回复
登录后即可参与回复。登录