Dynamics 365:setTimeout 后页面重新加载

问题描述 投票:0回答:1

我有一个报价形式的场景,当记录处于状态时,显示进度指示器,但是当状态更改(来自另一个过程)时,该指示器必须关闭。

function showIndicator(executionContext){
    var formContext = executionContext.getFormContext();
    var status = formContext.getAttribute('statuscode').getValue();
    var message = 'Quote is being processing'
    if(status == 493430001){
        Xrm.Utility.showProgressIndicator(message);
        setTimeout(function () {
                //Refresh Form
                formContext.data.refresh(false);
                });
        }, 3000);
    }else{
        Xrm.Utility.closeProgressIndicator();
    }
}

此函数在页面加载时执行。我想在3秒后刷新页面并再次检查记录的状态,如果仍在处理,则显示消息,然后在3秒后再次刷新

javascript dynamics-crm microsoft-dynamics dynamics-365
1个回答
0
投票

使用 setInterval 代替 setTimeout

function showIndicator(executionContext){
    var formContext = executionContext.getFormContext();
    var status = formContext.getAttribute('statuscode').getValue();
    var message = 'Quote is being processing'
    if(status == 493430001){
        Xrm.Utility.showProgressIndicator(message);
        setInterval(function () {
                showIndicator(executionContext);
        }, 3000);
    }else{
        Xrm.Utility.closeProgressIndicator();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.