从cordova中的计时器功能中调用javascript函数

时间:2017-05-31 15:22:47

标签: javascript jquery cordova

我试图整理一些调用rest API来获取ID的函数,然后使用此ID发布到不同的API并且我遇到了主要障碍。我尝试过回调和承诺,但无济于事,我用来请求ID的第一个函数在第二个函数执行之前没有执行,所以$ post失败了。我已经使用了setTimout,它似乎可以解决问题,但由于某种原因,我无法在计时器功能中调用不同的函数。有人可以让我知道我在哪里出错了,感谢您的帮助!

var timerVariable;

this.placeNewOrder = function(){
    this.newOrder();
    timerVariable = setTimeout(this.orderTimer, 1000);
};

this.newOrder = function(){
    //code to set currentOrderId
    return currentOrderId
    alert("got Id");
};

orderTimer = function(){
    this.postOrderItems();//this call never seams to call the function
};

this.postOrderItems = function(){
    alert("postOrderItems called");//, orderId: " + currentOrderId);
    //code to $post in here
};

1 个答案:

答案 0 :(得分:1)

将上下文保留在orderTimer内的方法是绑定它:

timerVariable = setTimeout(this.orderTimer.bind(this), 1000);

这解决了您遇到的直接问题,但这是解决原始问题的错误方法。