在javascript中包装回调

时间:2011-09-02 15:57:34

标签: javascript asynchronous

我有两个相应的列表:addressesdescriptions

在JS中,我使用的是第三方API方法:Foo(addresses, FooCallback);

我写了一个FooCallback来获取gecodings数组。我想在gecoding[i]内匹配任何description[i]FooCallback。这样做的最佳设计是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用closure保存i的状态:

var addresses = [...stuff...];
var destinations = [...stuff...];
var i = 3; // maybe from a loop
var FooCallback = (function(destinations, index) {
    return function (geocodings, index) {
        if (geocodings[index] === destinations[index]) {
            // stuff;
        }
    }
})(destinations, i);

Foo(addresses, FooCallback);