Javascript排序回调

时间:2015-10-23 00:18:33

标签: javascript sorting

我需要对大量的Javascript项进行排序,我正在使用sort这样的函数:

var sorted_list = non_sorted.sort(function(a,b){
// Sort stuff here
});

我想做的是在sort功能完成后调用函数。

是否有可能在sort结束时添加回调函数来排序或触发事件?

3 个答案:

答案 0 :(得分:13)

你太复杂了。 sort方法不是异步的,因此您不需要回调或事件。只需将代码放在调用sort的代码之后:

var sorted_list = non_sorted.sort(function(a,b){
  // comparer
});
// The code just continues here after the sort

答案 1 :(得分:0)

排序功能是同步的,因此您可以在通话后立即执行某些操作,但如果您想要其他方式:

Array.prototype.sortCallback = function(compareFunction, resultFunction){
    result = this.sort(compareFunction);
    resultFunction(result);
}

用法:

non_sorted.sortCallback(function(a, b) {
  // Sort stuff here
}, function(sorted) {
   // Do something with the sorted array
});

答案 2 :(得分:-1)

这有点脏,但确实有效:

对于排序功能来说足够慢(在合理范围内)并且比肉眼更快。

function sort_with_callback() {

            run_sort_function();

            setTimeout(function() { run_callback()},  3);}