ord*_*anj 1 javascript node.js
我希望这是一个简单的问题.回调的最佳做法是哪种?
选项1:
function get (id, callback) {
var topic = find(id);
var err = new Error('Sorry, ' + id + ' is not a valid id.');
err.status = 404;
return (topic) ? callback(null, topic) : callback(err);
}
Run Code Online (Sandbox Code Playgroud)
选项2:
function get (id, callback) {
var topic = find(id);
var err = new Error('Sorry, ' + id + ' is not a valid id.');
err.status = 404;
return (topic) ? callback(undefined, topic) : callback(err);
}
Run Code Online (Sandbox Code Playgroud)
旁注,find()返回undefined,而不是null.
提前致谢.
我会做Node内置API函数所做的事情.
一个微不足道的实验告诉我:
open经过null了err成功.
opennull失败时传递数据参数.
其他几点:
你的代码总是构造一个Error对象,即使事情有效.我不会这样做,这是毫无意义的.
您的代码返回调用回调的结果.这很不寻常.
据我所知,你的代码正在同步调用回调.(例如,在调用时get,回调将在get返回之前发生.)通常,异步调用是异步调用.如果你正在做同步的东西,像openSync和这样的,把Sync上的名字和返回值,而不是直接调用回调函数.
| 归档时间: |
|
| 查看次数: |
2301 次 |
| 最近记录: |