如何使功能等待另一个?

时间:2015-07-08 13:08:05

标签: javascript

我有一个函数,调用另一个函数:

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()执行?

3 个答案:

答案 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
}