ready包
发布于 8 年前 作者 JerrysShan 4025 次浏览 来自 问答

有谁用过这个这个包,这个包是干嘛用的?望道友指点一二,在此先谢过! 看了这个包的github,表示没有看太懂!

7 回复

有些自定义模块,会有初始化的过程,你想要在初始化完成之后,才做某件事情。

这时候就用 ready 这个包,来给对应的模块一个加 .ready 方法,外部引用了该库之后,向 .ready 中传一个回调函数。

该模块通过 .ready(true) 来负责标记什么时候 ready 完毕。

http://npm.taobao.org/package/ready

赶脚就是个特定事件的激发。需要的话还是蛮方便的。

@alsotang 谢谢,明白了一些,正看你写的nodeclub的源代码,在单元测试部分看到这个包。

@alsotang 我根据你说的又看了看代码,其中几个地方还有点困惑,比如在support.js中

createUser(ep.done(‘user’)); createUser(ep.done(‘user2’)); createUser(ep.done(‘admin’)); createUser函数不是接受一个callback,这里面为什么会传ep.done(‘user’)

@JerrysShan 这你就要去看 ep.done 的 api 了,这是个 shortcut

@alsotang 我明白ep.done()写的意思了。我是这样理解的,如果没有用ready包的话,当你在controllers\user.test.js 引用support.js方法时,并不能保证下面的对 exports.normalUser = user; exports.normalUserCookie = mockUser(user); exports.normalUser2 = user2; exports.normalUser2Cookie = mockUser(user2)… 这些字段的初始化(这些代码没有执行我可以这么理解吗),使用ready包之后,确保这些变量的初始化,也即是确保这些代码执行了。我是不是 理解偏差了,模块在引入的时候不就编译了吗?这样的话那些字段不是也就初始化了,我还是没有体会到ready的好处在哪?

@JerrysShan 虽然看不懂你的描述。。不过你要注意 node.js 当中处处有异步。某些异步是需要等待的。

回到顶部