在承诺(promises)解决后显示一个按钮。

huangapple go评论72阅读模式
英文:

Display a button after promises are resolved

问题

在所有承诺都被解决后,您可以显示一个按钮。您可以使用Promise.all来等待所有承诺的完成,然后在完成后显示按钮。以下是一个示例代码:

function somefunction() {
    // 创建三个API调用的承诺数组
    const promises = [
        zoho.crm.connection.invoke(shtCon, req_data),
        zoho.crm.connection.invoke(shtCon, req_data),
        zoho.crm.connection.invoke(shtCon, req_data)
    ];

    // 使用Promise.all等待所有承诺完成
    Promise.all(promises)
        .then(responses => {
            // 所有承诺都已完成,可以在这里显示按钮
            // 在这里添加显示按钮的代码
        })
        .catch(error => {
            // 处理错误情况
        });
}

请注意,您需要根据您的需求添加显示按钮的代码。这段代码将等待所有API调用完成,然后在.then块中执行相应的操作。

英文:

I have a javascript function inside which i have 3 api calls with promises. How can I display a button when all promises are resolved.

I had to make different function which i execute after first function. But that only increases buttons and functions in my code.

Need a code to wait until all requests execute and variables get some data and then display a button.

 function somefunction(){
    zoho.crm.connection.invoke(shtCon,req_data).then(fucntion(response){
    status1 = response.status;
    })
    zoho.crm.connection.invoke(shtCon,req_data).then(fucntion(response){
    status2 = response.status;
    })
    zoho.crm.connection.invoke(shtCon,req_data).then(fucntion(response){
        status3 = response.status;
     })
    }

答案1

得分: 0

以下是翻译好的部分:

要实现你的目标最简单的方法是在每个 API 响应后检查是否所有调用都已解决。

类似以下的解决方案将起作用。

let status1, status2, status3;

function somefunction() {
    status1 = null, status2 = null, status3 = null;
    zoho.crm.connection.invoke(shtCon, req_data).then(function(response) {
        status1 = response.status;
        checkIfAllCallsAreDone();
    });
    zoho.crm.connection.invoke(shtCon, req_data).then(function(response) {
        status2 = response.status;
        checkIfAllCallsAreDone();
    });
    zoho.crm.connection.invoke(shtCon, req_data).then(function(response) {
        status3 = response.status;
        checkIfAllCallsAreDone();
    });
}

function checkIfAllCallsAreDone() {
    if (status1 && status2 && status3) {
        // 在这里执行你的逻辑
    }
}
英文:

The easiest way to achieve your goal is to see if all calls are resolved after each api response.

Some solution like this will work.

let status1, status2, status3;
function somefunction( ){
    status1 = null, status2 = null, status3 = null;
    zoho.crm.connection.invoke(shtCon,req_data).then(fucntion(response){
        status1 = response.status;
        checkIfAllCallsAreDone();
    })
    zoho.crm.connection.invoke(shtCon,req_data).then(fucntion(response){
        status2 = response.status;
        checkIfAllCallsAreDone();
    })
    zoho.crm.connection.invoke(shtCon,req_data).then(fucntion(response){
        status3 = response.status;
        checkIfAllCallsAreDone();
    })
}

function checkIfAllCallsAreDone() {
    if(status1 && status2 && status3) {
        // Do your logic here
    }
}

huangapple
  • 本文由 发表于 2023年5月11日 15:48:19
  • 转载请务必保留本文链接:https://go.coder-hub.com/76225233.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定