javascript - setTimeout 函数未在量角器中使用 javascript 执行
问题描述
我创建了一个函数,我需要在延迟 2 分钟后读取文件。
function checkInLogs(logFilPath, logMessage){
setTimeout(() => {
fs.readFile(logFilPath, 'utf8', function (err,data){
console.log('I am inside the checkInLogs function')
})
}, 120000);
console.log('outside the function');
}
我正在使用以下代码调用该函数:
fileUtil.checkInLogs('D:/Installation/V114_new/be/5.6/rms/bin/logs/CCARms25', '[Port:8090] successfully started');
但问题是 setTimeOut 中的代码永远不会被执行。在控制台上,我可以看到消息为 :outside the function。但是里面的代码没有被执行。我什至尝试了以下功能:
function checkInLogs(logFilPath, logMessage){
fs.exists(logFilPath, function(exists) {
fs.readFile(logFilPath, 'utf8', function (err,data){
console.log(data.toString());
console.log(err.toString());
})
})
}
并称它为:
setTimeout(function() {
fileUtil.checkInLogs('D:/Installation/V114_new/be/5.6/rms/bin/logs/CCARms21', '[Port:8090] successfully started')
}, 120000);
但没有运气。setTimeOut 内的代码没有被执行。请提供任何建议/解决方案。
解决方案
通过测试,我认为您需要告诉它先等待,而不是使用 setTimeout。假设您的 protractor.conf 中的超时时间足够长,这应该可以工作。
it('can wait two min', async ()=>{
await browser.sleep(120000);
fileUtil.checkInLogs('D:/Installation/V114_new/be/5.6/rms/bin/logs/CCARms21', '[Port:8090] successfully started');
})
推荐阅读
- python - 在 Python 3.7+ 中使用 subprocess.run 进行多个输入
- php - 如何通过phpexcel导出excel表格另存为图像
- list - Flutter 我想重建列表但无法分配
- reactjs - 如何使用 Gin + React 上传文件?
- javascript - 如何获取网页 HTML 可用的所有 JavaScript 函数?
- java - Android Studio、Java、TextView 不反映我编码的内容
- jquery - 如何反转这个滚动动画?
- android - 使用平台密钥与上传密钥进行 android 签名
- lisp - 快速排序结果中出现额外的 nil 问题
- firebase - 尝试通过 Firebase Cloud 函数将 DateTime 对象发送到 Firestore