【问题标题】:Promise Catch is not receiving error in json rpc callsPromise Catch 在 json rpc 调用中未收到错误
【发布时间】:2020-03-10 08:49:51
【问题描述】:

如果地址错误或交易不成功但没有得到任何响应,我会尝试出错。请帮帮我

/列出交易 API/

app.post('/sendtoadd',(req,res) => {

        var fromAdd = req.body.fromAddress;
        var toAdd = req.body.toAddress;
        var qty= req.body.qty;
        var assetId = req.body.assetId;
        console.log("SEND TO ADDRESS API is in progress");
        functions.sendToAddress(fromAdd, toAdd, qty, assetId).then(function(result){
            res.send(result);
        }).catch(function(err){ 
            console.log(err);
            res.send(err);
        });
})

/*函数定义*/

function sendToAddress(fromAddress, toAddress, qty, assetId){
return new Promise(function(resolve,reject){
            var client = new rpc.Client(options);
            client.call({
                "jsonrpc":"2.0", 
                "id":1, 
                "method":"sendtoaddress", 
                "params":[fromAddress,toAddress,qty,assetId]
                },
                function (err, res){
                    if(err){
                        reject(err);
                        return;
                    } else {
                        var msg = res;
                        var message = msg.result;
                        resolve(message);
                    }
                })
        })
}

【问题讨论】:

  • 如果错误在json响应中,我该如何检查响应消息
  • 你用 [grpc] 标记了这个。您能否说明您正在使用什么 gRPC 库以及如何创建或加载 rpc.Client 类?

标签: node.js rest api promise grpc


【解决方案1】:

client.call 的回调函数是异步的。因此它不会找到 reject() 或 resolve() 回调。

试试:

function sendToAddress(fromAddress, toAddress, qty, assetId){

    return new Promise(function(resolve,reject){
        var res = resolve,
            rej = reject;
        var client = new rpc.Client(options);
        client.call({
            "jsonrpc":"2.0", 
            "id":1, 
            "method":"sendtoaddress", 
            "params":[fromAddress,toAddress,qty,assetId]
        },
        function (err, res){
            if(err){
                rej(err);
                return;
            } else {
                var msg = res;
                var message = msg.result;
                res(message);
            }
        })
    });
}

【讨论】:

    猜你喜欢
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多