我想在完成地图功能后执行一些操作。
我认为我们可以如下使用回调函数。但是它不存在,所以不起作用:
this.data.map((v, i) => {
console.log("in map func");
}, () => {
console.log("callback of map");
});
所以我这样改变了
var last = this.data.length;
this.data.map((v, i) => {
console.log("in map func");
if(i + 1 === last) {
console.log("last!!");
}
});
它奏效了,但是如果有人知道更好的方法,请告诉我。
添加
this.data.map((v, i) => {
setTimeout(function(){ console.log("in map"); }, 3000);
});
console.log("after map");
↑“后映射”首先显示在此代码上。 (我的目的是在地图功能中使用Ajax)
答案 0 :(得分:0)
如果您只想在map
之后立即运行命令,只需将其放在代码的下一行:
this.data.map((v, i) => {
// Do whatever you want to do
});
console.log("This will run after your map is done");
要更轻松地理解这一点,由于map
将返回一个新对象,您可以执行以下操作:
var myArray = [1, 4, 9, 16];
const map1 = array1.map(x => x * 2);
console.log(map1); // This will have the final result of map
更新:
所以您的问题还不是很清楚,现在我想知道您想做什么,我想您可以使用Promise
var promise1 = new Promise(function(resolve, reject) {
this.data.map((v, i) => {
setTimeout(function(){ resolve('in map'); }, 3000);
});
});
promise1.then(function(value) {
console.log(value);
// expected output: "in map"
});