Parse platform “这是什么意思?”;return";在解析中的afterSave处理程序中
我不清楚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中的返回影响的是与客户端的连接何时关闭 如果您返回一个承诺,在该承诺解决之前,连接不会关闭。对于您引用
在上面的代码示例中,我认为是来自文档,返回确保
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和解析的知识,并不断回到你的解释。虽然速度慢,但我确实开始理解它。现在,整整一年之后,我终于明白了明白了。谢谢你的精彩解释。不客气。我相信你现在会很感激的,写出来对我也有帮助:)。