比如
invokeCallback(param1, function (e) {
//code...
});
function invokeCallback(params1, callback) {
callback.call(null, params2);
}
或者
var result = invokeCallback(params1);
//code.
function invokeCallBack(params1) {
return params2;
}
哪个看上去比较好呢?求教,谢谢。
JS的话怎么着都是回调好
因为JS是纯单线程的,所以如果你用第二种,中间过程中会导致整个程序阻塞(前端程序特别不能忍,因为会导致整个页面卡住,就算0.x秒对用户来说也会感觉到)
但是回调也有更好的写法,比如使用订阅的方法来处理多个回调的返回,可以避免面条回调。
var consumer = {} consumer.consume = function(key, value){ this.params[key] = value if(this.paramsReady()){ // code... } } function invoke1(params) { // code... consumer.consumer("param1", param1) } function invoke2(params) { // code... consumer.consumer("param2", param2) }
我的看法,异步有意义的用回调,比如另一个线程实现的UI事件,或者轮询I/O事件,其它的代码可读性优先,不注意的话写匿名函数容易造成代码结构散乱,滋生多层嵌套,缩进过度。