代码之家  ›  专栏  ›  技术社区  ›  Stephan Boner

调用异步函数后出现UnhandledPromiseRejection警告

  •  0
  • Stephan Boner  · 技术社区  · 4 年前

    我正在尝试编写一个云函数,在删除客户端上的用户配置文件之前删除用户的一些对象。为此,我有一个云函数以及一些异步助手函数,它们运行解析查询并删除项目。不幸的是,在调用函数时,我总是得到以下错误

    未处理的promise拒绝警告:未处理的promise拒绝。此错误要么是由于在没有catch块的情况下抛出异步函数内部,要么是由于拒绝了未用.catch()处理的promise。

    下面是我的代码,我试图让它尽可能简单,但仍然出现了错误。我如何在云代码中调用异步函数,并在出现问题时仍将解析错误作为函数响应返回?

    简单总结:我想写一个云函数,它调用异步助手函数,这些函数调用的方法如下 await query.find(); 。调用云函数的用户应获得以下结果或实例 Parse.Error .

    有效的代码

    Parse.Cloud.define("test_function", async (request) => { 
        throw new Parse.Error(1234, "Test error"); 
    });
    

    不起作用的代码

    Parse.Cloud.define("test_function", async (request) => {
        try {
            testAsync();
        } catch (error) {
            throw error;
        }
    });
    
    async function testAsync() {
        throw new Parse.Error(1234, "Test error");
    }
    
    0 回复  |  直到 4 年前