Javascript 如何获取从settimeout调用的函数的返回值
我已经设置了live agent,我正在尝试在代理端设置一个警报,当客户在一定时间间隔后没有回复他的消息时 以下是我试图实现的目标(所有这些都在js帮助程序中,由js控制器委派)Javascript 如何获取从settimeout调用的函数的返回值,javascript,promise,settimeout,helper,lightning,Javascript,Promise,Settimeout,Helper,Lightning,我已经设置了live agent,我正在尝试在代理端设置一个警报,当客户在一定时间间隔后没有回复他的消息时 以下是我试图实现的目标(所有这些都在js帮助程序中,由js控制器委派) 声明了一个全局变量globalvariable1,该变量跟踪其已更改的值 使用了onAgentMessageSend组件,该组件在代理聊天时激发 当来自代理或客户时,用于更改全局值的函数 当客户发送消息时激发的方法 onNewMessageFromEndUser:函数(cmp、recordId、内容、名称、类型、时
但是Settimeout的结果是无法实现的,请您在此提供帮助,以获得任何其他方法来实现这一点,或者自行纠正这一点?您需要在
Settimeout
内执行逻辑,或者创建一个函数并在timeout内调用它
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);
},
您需要在
setTimeout
内执行逻辑,或者创建一个函数并在timeout内调用它
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);
},
这就是我所做的,这并没有发生,因为在settime out内部,返回的值并没有发生captured@victor您是否能够获取self.checkMessageSenderAndResetCounter(cmp)的值外部
设置超时
?如果是,则尝试使用箭头更新的代码功能,该功能将访问外部作用域。这是我所做的,但没有发生,因为内部设置超时返回的值不存在captured@victor您是否能够获取self.checkMessageSenderAndResetCounter(cmp)的值外部设置超时
?如果是,请尝试使用箭头功能更新代码,该功能将访问外部范围
this.globalvariable1='Customer';},
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);
},