Parse platform “这是什么意思?”;return";在解析中的afterSave处理程序中

Parse platform “这是什么意思?”;return";在解析中的afterSave处理程序中,parse-platform,parse-cloud-code,back4app,Parse Platform,Parse Cloud Code,Back4app,我不清楚return关键字在afterSave处理程序中的用途。据我所知,它不会将结果返回给客户端,如果是,那么它将结果返回到哪里?图片来源于云代码文档,请参考 在上面的代码示例中,我认为是来自文档,返回确保post.save()中的任何错误都会被catch捕获 在afterSavehook中,不会向客户端返回任何错误。将返回的对象不受afterSave中发生的任何事件的影响 afterSave中的返回影响的是与客户端的连接何时关闭 如果您返回一个承诺,在该承诺解决之前,连接不会关闭。对于您引用

我不清楚return关键字在afterSave处理程序中的用途。据我所知,它不会将结果返回给客户端,如果是,那么它将结果返回到哪里?图片来源于云代码文档,请参考


在上面的代码示例中,我认为是来自文档,返回确保
post.save()
中的任何错误都会被
catch
捕获

afterSave
hook中,不会向客户端返回任何错误。将返回的对象不受
afterSave
中发生的任何事件的影响

afterSave
中的返回影响的是与客户端的连接何时关闭

如果您返回一个承诺,在该承诺解决之前,连接不会关闭。对于您引用的代码,承诺不会返回,因此连接将立即关闭,因为
afterSave
函数将在解析post.save()承诺之前返回

为了使突出显示的
返回对客户端有任何影响,您还必须返回如下查询:

Parse.Cloud.afterSave('Comment',(请求)=>{
constquery=newparse.query('Post');
return query.get(…)
在这种情况下,客户端将等待帖子的注释计数增加并保存,然后再关闭连接

继续阅读,了解为什么这很重要,以及关于
afterSave
的其他细节,以及“返回”是如何工作的

以下是一些注意事项:

  • 如果您要执行一些“昂贵”或长时间的操作,并且客户端不需要等待,那么请确保您不返回承诺,并且
    afterSave
    函数不是
    async
    。如果您希望更新外部系统或在保存后发送电子邮件,这将是合适的。下面是如何断开
  • const afterSave=函数afterSave(请求){
    const{object}=请求;
    得到了。邮局htttps://my.microservice/complete“,{object})
    。然后(()=>console.log('done posting to microservice'))
    .catch(控制台错误);
    };
    
    如果在“微服务”中发布错误,客户端将永远不会知道,但它将被记录到您的控制台

  • 让客户端等待
    afterSave
    是一种合适的情况,在这种情况下,您需要确保在客户端获取保存的对象之前完成相关操作。例如,假设您需要向角色添加新用户,并且在将用户返回到角色之前需要完成该操作由于权限不足,将出现客户端错误或错误。在这种情况下,您需要先保存用户,并为其提供一个id,然后才能将其添加到角色中。因此,在这种情况下,您需要在
    afterSave
    中将用户添加到角色中,这是一个异步操作,并返回生成的承诺,以便用户的权限状态当客户端获取返回的用户对象时,将设置并知道on

  • 希望这能有所帮助!

    这段代码不是关于返回结果,而是关于一个链式过程。亚瑟,你在2020年3月27日发布了这段代码。起初,几乎所有的事情都让我不知所措。所以我不断学习更多关于JS和解析的知识,并不断回到你的解释。虽然速度慢,但我确实开始理解它。现在,整整一年之后,我终于明白了明白了。谢谢你的精彩解释。不客气。我相信你现在会很感激的,写出来对我也有帮助:)。