我有一个函数,调用另一个函数:
function_name(1)
function function_name (i) {
multiply(i)
console.log(i); // 1
}
function multiply (i) {
i = i*2
}
执行时,console.log(i)
返回“1”。
我需要console.log(i)返回“2”。
我该如何让它等到multiply()
执行?
答案 0 :(得分:10)
无需等待,这些方法是同步的,因此console.log()
仅在执行multiply()
后才执行。问题是您只是在乘法中更新本地范围的变量i
,因此i
中的操作不会修改function_name
中的本地范围变量multiply
您可以从multiply返回结果,并在调用函数中使用该值,如
function_name(1);
function function_name(i) {
i = multiply(i);
console.log(i); // 1
}
function multiply(i) {
return i * 2;
}
答案 1 :(得分:3)
现在i
永远不会改变。
如果您执行以下操作,则应该可以:
function_name(1);
function function_name (i) {
i = multiply(i);
console.log(i); // 2
}
function multiply (i) {
return i = i*2;
}
答案 2 :(得分:2)
试试这个。
function_name(1)
function function_name (i) {
i = multiply(i); //Makes 'i' equal to the value returned
console.log(i); // 2
}
function multiply (i) {
return i = i * 2; // returns the value
}