解决for、map等循环处理数据之后再执行后续操作的问题

举个栗子

const temp = [1,2,3,4,5,6,7,8]
let sum = 0
for(let i = 0; i<temp.length; i++) {
	if (temp[i] > 4) {
		sum++
	}
}
console.log(sum) // 此处输出为0,而不是4,如果这时候后续操作需要用到sum等于4的值,那么就需要修改为如下写法
async getSum() {
	const temp = [1,2,3,4,5,6,7,8]
	let this.sum = 0
	this.sum = await this.sumSum(temp)
	console.log(this.sum) // 4
	//这时候就可以用得到的值为4的sum来进行后续的操作了
}
sumSum(temp) {
	return new Promise((resolve) => {
		for(let i = 0; i<temp.length; i++) {
			if (temp[i] > 4) {
				this.sum++
			}
			if (i === temp.length-1) {
				resolve(this.sum)
			}
		}
	}
}

你可能感兴趣的:(javascript,javascript)