js将对象传递给回调函数

js pass object to callback function

本文关键字:回调 函数 对象 js      更新时间:2023-09-26

我想在地理编码回调函数中引用项对象。如果我使用下面的代码,Item总是指最后一次$迭代的状态。我认为这是因为回调是在$each循环结束后运行的。因此,我需要将项对象传递给地理编码器。我该怎么做?

 $.each(results.data, function(index) {
        var item = results.data[index];
        geocoder.geocode( { 'address': address}, function(results, status) {
            item.lat = results[0].geometry.location.lat();
            item.lng = results[0].geometry.location.lng();
        });
    });

不完全理解这个问题,所以这可能没有帮助,但你正在尝试做一些类似的事情:

results.data.forEach(function(item) {
    geocoder.geocode( { 'address': address}, function(results, status) {
        item.lat = results[0].geometry.location.lat();
        item.lng = results[0].geometry.location.lng();
    });
});

这将确保对项目的引用是正确的。如果它是一个对象,你可以使用Lodash的forOwn而不是forEach。如果您真的想使用jQuery,那么回调的第二个参数将是item。