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