i am new to developing raspberry pi 3 server in NodeJS. Recently i started working on NodeJS with Bluetooth BLE technology, i write a server to send response and notification over the BLE everything is working fine but when i use setTimeout() function the callback isn't work its ref become null and NodeJS isn't sent any response notification back to connected device here is my NodeJS code i am using bleno.js library for BLE Callback
To send response back to the caller
function updateCallback(ref, msg=""){
if (ref._updateValueCallback) {
console.log('Response value : '+msg);
ref._updateValueCallback(ref._value);
}
}
if(tokens[2]=="1"){
func.storeRelayAction(db, "1", decryptedString).then(result => {
this._value = Buffer.from(result.toString(), 'utf8');
updateCallback(this,result.toString()); // Send proper call back to device
}).then(()=>{
unlockTrigger();
var timer = func.getTimer(db);
timer.then(delayTime=>{
console.log(delayTime + "::delayTime");
if(delayTime){
setTimeout(function(){
lockTrigger();
console.log("after sleep");
this._value = Buffer.from("1", 'utf8');
updateCallback(this,"1");// Not Working from here
},parseInt(delayTime)*1000)
}
})
})
}
If i moved the updateCallback(this,"1") outside setTimeout funcation then it work perfectly