异步return的问题.
希望大神别喷我,别打我,问题如下: 如何让mysql异步里的option return成为checkname的返回值。不使用callback。 现在这样写就直接返回定义的null了,内部还没来得及执行。 求指导,谢谢
21 回复
@fangker 没看懂,再怎么闭包,你也不能把异步改成同步的吧,你可以给 checkname return一个promises 接口,当然最终使用者也是需要用 callback function 来取数据
不能,因为这是违反大自然规律的。
你想“马上立即立刻”获取一个“将来”才能得到的东西,可能吗?
为什么闭包也不行?
因为:闭包能做到的是将本轮事件循环中的值保存下来,给回调函数用(后续的事件循环)。本质上还是保存现在的东西给将来用,跟你的需求正好相反。闭包貌似是个很高深的东西,但它不是万能的!
@captainblue2013 因为前面有个function* longRunningTask() { var value1 = yield step1(); var value2 = yield step2(value1); var value3 = yield step3(value2); } 这样的东西,每个函数要有返回值