javascript异步问题(odoo8 PoS)

时间:2016-06-02 14:20:05

标签: javascript asynchronous model openerp point-of-sale

我为Odoo PoS编写了一个Javascript函数,在这个函数中我使用查询从后端python代码中声明的模型中获取数据。在此查询功能中,我想使用检索到的折扣并将其添加到我的订单行。

但由于某种原因,下面的代码片段总是首先生成,这导致折扣已经设置为0.

" 2"总是首先打印,然后是" 1",任何想法?

render_orderline: function(orderline){

        var prodgroup;

        var discounts= new openerp.Model('discountgroup');
        discounts.query(["discount_field"])
        .filter([['productgroup','=', prodgroup]])
        .first()
        .then(function(discountObj){
            console.log("1")
            var discount;
            var disc;
            discount = discountObj.discount_field;

            disc = Math.min(Math.max(parseFloat(discount) || 0, 0),100);
            orderline.discount = disc;
            orderline.discountStr = '' + disc;              
        });

        console.log("2")
        var el_str  = openerp.qweb.render('Orderline',{widget:this, line:orderline}); 
        var el_node = document.createElement('div');
        el_node.innerHTML = _.str.trim(el_str);
        el_node = el_node.childNodes[0];
        el_node.orderline = orderline;
        el_node.addEventListener('click',this.line_click_handler);
        orderline.node = el_node;

        return el_node;

0 个答案:

没有答案