rpc调用之对对象的修改

作者: 抓不住的风 | 来源:发表于2014-11-25 17:05 被阅读149次

pomelo中支持rpc调用另外一个进程中的方法,不过也需要注意一些事项.

首先rpc调用的方法是在另外一个进程中,跟当前进程完全没有关联,当前进程中的对象,不会在rpc调用的方法中被修改.

rpc调用的方法中的参数,实际上是当前进程中兑现的克隆体,虽然值是相同的,但是指向的是两个不同的对象,指针不同. 

不要想当然的认为,当前对象传递过去,然后对其进行修改,就能真正的改变他的值.

说的可能不清楚,还是举例子说一下吧.

DataHandler.prototype.changeObjValue =  function(charInfo,cb){

        var app = this.app;

        var charInfo = {id :1,name :'XXX'};

        app.rpc.data.dataRemote.changeValue(global,charInfo,function(err,newInfo){

                console.log(newInfo);//charInfo 值没有改变{id :1,name :'XXX'}

                charInfo = newInfo; 将克隆体的修改重新赋值给原来的对象 即可更新

                console.log(newInfo);//charInfo 值 :{id :1,name :'XXX', age:100}

        });

}

DataRemote.prototype.changeValue = function(charInfo,cb){

        if(!!charInfo){//此时charInfo 是传递过来的charInfo的克隆体,不再是同一对象

            charInfo.age = 100;

        }

        cb( null, charInfo );

}

相关文章

  • rpc调用之对对象的修改

    pomelo中支持rpc调用另外一个进程中的方法,不过也需要注意一些事项. 首先rpc调用的方法是在另外一个进程中...

  • 服务器之间数据保存 rpc set

    rpc获取的数据,一定要rpc set一下. 应为是RPC从别的进程获取的对象, 所有针对该对象的修改,如果没有R...

  • RPC原理学习

    RPC原理学习 什么是RPC RPC(Remote Procedure Call Protocol)——远程过程调...

  • 手把手教你写一个RPC

    1.1 RPC 是什么 定义:RPC(Remote Procedure Call Protocol)——远程过程调...

  • 手把手教你写一个RPC!

    1.1 RPC 是什么 定义:RPC(Remote Procedure Call Protocol)——远程过程调...

  • go-zero开发-rpc

    通过修改go-zero rpc的模板 下方指令用于生成rpc服务

  • RPC框架简介

    参考性能基础之常见RPC框架浅析 什么是RPC RPC:Remote Produre Call-远程过程调用,像调...

  • watch

    深度监听,handler特定回调函数不容修改监听整个对象监听对象里面的某一个属性

  • 【深度知识】RPC原理及以太坊RPC的实现

    1.摘要 本文介绍RPC协议的原理和调用流程,同时介绍以太坊RPC的实现机制。 2. 内容 2.1 RPC协议和调...

  • RPC学习笔记

    RPC是什么? RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。 它允许程序调...

网友评论

    本文标题:rpc调用之对对象的修改

    本文链接:https://www.haomeiwen.com/subject/etwwtttx.html