如何解决如何获取从settimeout调用的函数的返回值
我已经设置了实时座席,并且当客户在一定时间间隔内未回复邮件时,我正在尝试在座席方面设置警报
这就是我想要实现的方式(所有这些都在js帮助器中,由js控制器委派)
onAgentMessageSend : function(cmp,recordId,content,name,type,timestamp){
if(type=='Agent')
{
var self = this;
setTimeout(function() {
var returnedType=self.checkMessageSenderAndResetCounter(cmp);
},5000);
if(returnedType=='Default Value')
{alert('Unresponsive Customer');}
else{
console.log('customer responded hence reset');
globalvariable1= 'Default Value'}}
else{
console.log('Do nothing');}},
- 当来自代理商或客户时更改全局值的功能
checkMessageSenderAndResetCounter: function(cmp) {
console.log('the current value of globalvarable'+this.globalvariable1);
return this.globalvariable1;},
总结一下,我要在这里实现的目的是,一旦座席聊天,就设置一个计时器,比如说5秒钟。如果客户答复,则在该时间范围内,全局变量将更改并继续。如果没有来自客户端的答复,则全局变量仍然是默认值,然后它会发出警报,指示存在未解决的问题。
但是Settimeout的结果是无法实现的,请您在这里帮忙寻求其他任何方式来实现这一目标,或者自己改正吗?
解决方法
您需要在setTimeout
内执行逻辑或创建一个函数并在超时内调用它。
if(type=='Agent')
{
var self = this;
setTimeout(() => {
var returnedType=self.checkMessageSenderAndResetCounter(cmp);
// perform rest of your logic inside
if(returnedType=='Default Value') {
alert('Unresponsive Customer');
else{
console.log('customer responded hence reset');
globalvariable1= 'Default Value';
}
},5000);
},
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。