等待函数完成(使用setInterval)并运行下一个函数

时间:2015-05-10 14:21:42

标签: javascript jquery

首次使用setInterval后如何运行下一个函数?

例如:

this.getView().byId("thisOne").setValue("Some thing");

请帮我解决问题!

2 个答案:

答案 0 :(得分:1)

您可以使用简单的标志来实现这样的目标。请参阅以下示例:

var flag = true;

function step1() {
  console.log('title');
}

function step2() {
  console.log('subtitle');
}

function wrapper() {
  if(flag) {
    step1();
  } else {
    step2();
  }
  flag = !flag;
}

setInterval(wrapper, 30000);

答案 1 :(得分:0)

首先,setInterval不能单独完成,如果不用clearInterval清除它,它将无限激发。

但是如果你的功能中有一些异步动作并且想要等待它然后再调用另一个功能你可能会像 Avraam Mavridis 那样宣传它。

function step1() {
    var deferred = $.Deferred();
    setTimeout(function () {
        alert('I am step 1');
        deferred.resolve();
    }, 1000);
    return deferred.promise();
}

function step2() {
    alert('I am step 2');
}

step1().done(step2);

JsFiddle