考虑uv_tcp_connect
的文档。
这是函数的声明:
int uv_tcp_connect(uv_connect_t* req, uv_tcp_t* handle, const struct sockaddr* addr, uv_connect_cb cb);
它接受回调并返回整数。
通常, libuv 中的其他功能返回错误代码(0如果没有错误)。
我想这也是如此。
我不清楚的是:如果返回值不等于0,是否会调用回调?
换句话说,返回值是否不同于0意味着完全无法执行操作,或者保证调用回调?
不幸的是,似乎没有记录返回值实际是什么。
请参阅文档中的错误处理部分。错误(返回< 0)意味着不会执行任何操作,也不会调用任何回调。
如果它返回非零结果,则不会调用回调。
您可以检查此线程以获取更多详细信息:
https://github.com/libuv/libuv/sissues/391
从阅读来源:
- 返回值是(负)错误代码,0表示一切都很好。
- 具有非零返回路径的代码不引用回调,因此我认为它不会被错误调用。