【问题标题】:Need Help to Convert Callbacks to Promise需要帮助将回调转换为 Promise
【发布时间】:2019-11-28 20:54:10
【问题描述】:

我不知道如何将此回调转换为 Promise(结果,错误)。你能告诉我它是如何制作的并用 cmets 解释一下吗?

function calcular() 
{
        let conta = 0;;
        var N1 = parseInt(document.getElementById("num1").value);
        var opção = document.getElementById("op").value;
        var N2 =  parseInt(document.getElementById("num2").value);

        if (opção === "+")
        {
            conta = N1 + N2;

        }
}

function MostrarResultado(conta) 
{

    document.getElementById("result").innerHTML = "O resultado da sua conta é = " + conta;

}

function Executar(callback)
{
    callback(calcular());
}

function xpto()
{
    setTimeout(function() {Executar(MostrarResultado)}, 3000);
}

【问题讨论】:

  • 这不是一个真正的回调模式,请告诉我们你到目前为止所做的尝试
  • 基本上我在JS中做一个简单的计算器,计算完成时使用回调。现在我必须做一个带有 Promise 的版本(结果和错误)
  • function successCallback(result) { console.log("它成功了 " + result); } function failureCallback(error) { console.log("It failed with " + error); }
  • 你想通过使用承诺来实现什么?
  • 解析:根据用户输入的值计算一个操作;拒绝:显示一条错误消息,指示未定义运算符。 Catch:操作员未输入时显示错误消息;

标签: javascript promise callback


【解决方案1】:

它不是 100% 清楚你想要什么,但这里是我认为你要求的一个简单示例

为了让你的函数使用 Promise 而不是回调,你可以这样做

function promiseFunction(){
    return new Promise(resolve =>{
        resolve(result);
    }
}

当你想获取函数返回的数据时,你可以这样做

function getInfoFromFunction(){
    promiseFunction(arg).then(result => {
        console.log(result)
    });
}

【讨论】:

  • 没问题的人 :) 如果这回答了您的问题,请您将其标记为已回答
  • 如果您的问题得到解答,请标记它,如果没有,请告诉我,我可以重复我的答案以帮助您
猜你喜欢
  • 2018-11-24
  • 2019-12-23
  • 2021-11-06
  • 2016-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多