一个Dubbo服务方法被连续调用了两次,这是怎么回事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个Dubbo服务方法被连续调用了两次,这是怎么回事相关的知识,希望对你有一定的参考价值。

参考技术A 一个Dubbo服务方法被连续调用了两次,这是怎么回事
main()
inti=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d",p,q,i,j);

这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。
3.9 赋值运算符和赋值表达式
1. 赋值运算符
简单赋值运算符和表达式:简单赋值运算符记为“=”。由“= ”连接的式子称为赋值表达式。其一般形式为:
变量=表达式

NuxtJS 页面被创建了两次

【中文标题】NuxtJS 页面被创建了两次【英文标题】:NuxtJS Page is created twice 【发布时间】:2020-06-10 04:18:51 【问题描述】:

我目前在 NuxtJS 中遇到一个问题,其中 方法被调用了两次,因此请求被发送了两次。

这发生在页面中,被调用两次的方法是created()。

我使用 参数 打开页面,例如:

http://localhost:3000/mypage?token=123123123

并且在页面的 created() 方法中我调用了一个 store dispatch。

created() 
    if (this.token === undefined || this.token === null) 
      this.$router.push('/login')
     else 
      console.log('called created() and sent dispatch')
      this.$store.dispatch('thirdPartyLogin', 
        token: this.token
      )
    
  ,

token 是通过 data 属性解析的:

data() 
    return 
      token: this.$nuxt.$route.query.token
    
  ,

这样做的问题是它是一次性令牌,这意味着它在使用一次后无效。因此,在第二次调用之后,请求不再成功。

为什么页面被创建了两次或者 created() 被调用了两次?

【问题讨论】:

查看此链接***.com/questions/60199338/… 【参考方案1】:

created() 和 beforeCreate() 是两个生命钩子,在服务器端和客户端都被调用。 (您也会在终端中看到一个控制台日志,因为服务器正在触发 i)

如果你想这样做一次,你可以:

a) 使用mounted() 钩子

b) 如果需要在挂载之前完成操作,则必须在创建的方法 process.client 中使用 if 语句。此 if 语句将检查您是否在客户端(浏览器端),如果是,请执行操作

created()
  if(process.client)
    //...your action here
  

【讨论】:

【参考方案2】:

这就是它的工作原理:

Nuxt.js 在服务器端运行一次created(),然后在客户端运行。

Nuxt s-s-r 显示您服务器的console.log 消息,第二个console.log 是客户端的消息。

您有 2 个选项:

在服务器端运行:

把它包起来:

   if(process.server)
   

或者在客户端运行一次:

   if(!process.server)
   

【讨论】:

以上是关于一个Dubbo服务方法被连续调用了两次,这是怎么回事的主要内容,如果未能解决你的问题,请参考以下文章

Cedar - 检查是不是使用不同的值调用了两次方法

在 iOS7 上,applicationDidEnterBackground 被调用了两次

tomcat服务器启动,Filter 的构造函数被调用了两次,doFilter函数调用了一次,

Angular 2 http get observable 调用了两次

asp中GridView的选择为啥被调用了两次

什么是幂等?