Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript setinterval未通过out app-Node.js更新/刷新_Javascript_Node.js_Scheduler - Fatal编程技术网

Javascript setinterval未通过out app-Node.js更新/刷新

Javascript setinterval未通过out app-Node.js更新/刷新,javascript,node.js,scheduler,Javascript,Node.js,Scheduler,我正试图编写一个程序,收集主题公园的等待时间,为一些数据科学实践创建一个数据库。我正试图从themeparks node.js包中收集这些数据 我的背景更多的是R和python,所以我在动态学习。现在,我可以从指定的公园以我想要的正确格式输出一个.csv文件,文件名包括日期,标题是该公园的游乐设施名称,行包含游乐设施的等待时间,最后添加一个时间戳以指定提取时间 目前,我已经创建了文件,添加了标题,然后每3秒添加一次行驶时间行(通常为5分钟,但出于测试目的,将其设置为3秒) 我面临的问题是,目前,

我正试图编写一个程序,收集主题公园的等待时间,为一些数据科学实践创建一个数据库。我正试图从themeparks node.js包中收集这些数据

我的背景更多的是R和python,所以我在动态学习。现在,我可以从指定的公园以我想要的正确格式输出一个.csv文件,文件名包括日期,标题是该公园的游乐设施名称,行包含游乐设施的等待时间,最后添加一个时间戳以指定提取时间

目前,我已经创建了文件,添加了标题,然后每3秒添加一次行驶时间行(通常为5分钟,但出于测试目的,将其设置为3秒)

我面临的问题是,目前,我的时间戳没有更新,当前时间也没有更新

为了将来的规划参考,我计划稍后添加一个特定的时间,该时间收集将根据停车时间结束和开始,但现在,我已将其设置为在应用程序启动时启动,并一直运行到无限期。同样,我也在同一个应用程序中为其他3个公园(猜猜是哪个公园)运行相同的代码片段,为它们创建其他.csv文件,但它们当然有自己的凭证来获取这些数据。后来的目的是让每个公园都有自己的应用程序,主应用程序会调用它们运行,但现在它们在同一个应用程序中,基本上与这个片段具有相同的结构。现在,我只需要知道如何获得更新的时间和数据,以及为什么不能

// include the Themeparks library
var Themeparks = require("themeparks");
var fs = require('fs');

//Date
var datetime = require('node-datetime');
var dt = datetime.create();
var TodayDate = dt.format('m-d-Y');
var TimeDate = dt.format('m-d-Y H:m');
var TimeStamp = "Time Stamp" //The Header for Time   Stamp




//************************ MAGIC KINGDOM     ***********************

 var disneyMagicKingdom = new     Themeparks.Parks.WaltDisneyWorldMagicKingdom



 disneyMagicKingdom.GetWaitTimes().then(function(rides) {
  for(var i=0 , ride; ride=rides[i++];) {
    // Write out the data in this format: "<RIDE     NAME>",<WAIT TIME>
    fs.appendFileSync('Magic Kingdom ' + TodayDate + '.csv', "\"" + ride.name + "\"" + ",");
  }
  //Goes to the next line in the csv, so the times will start on the next line.
  fs.appendFileSync('Magic Kingdom ' + TodayDate + '.csv', TimeStamp);
  fs.appendFileSync('Magic Kingdom ' + TodayDate + '.csv', '\r\n');

  //Repeats the Wait times interval
  setInterval(MKTime, 1000*3)

  function MKTime() {
    for(var i=0 , ride; ride=rides[i++];) {
      // Write out the data in this format: "<RIDE NAME>",<WAIT TIME>
      fs.appendFileSync('Magic Kingdom ' + TodayDate + '.csv', ride.waitTime  + ",");
      // Write out a new line so that when this loop repeats, the next row will be written on its own line
    }
    fs.appendFileSync('Magic Kingdom ' + TodayDate + '.csv', TimeDate);
    //Goes to the next line in the csv so when the next interval starts, the times will be on the next line
    fs.appendFileSync('Magic Kingdom ' + TodayDate + '.csv', '\r\n');
  }
}, console.error);
//包括ThemeMark库
var Themeparks=需要(“Themeparks”);
var fs=需要('fs');
//日期
var datetime=require('node-datetime');
var dt=datetime.create();
var TodayDate=dt.格式('m-d-Y');
var TimeDate=dt.格式('m-d-Y H:m');
var TimeStamp=“Time Stamp”//Time Stamp的标题
//************************魔法王国***********************
var disneyMagicKingdom=新建主题marks.Parks.WaltDisneyWorldMagicKingdom
disneymagickdom.GetWaitTimes().then(函数(骑乘){
for(var i=0,ride;ride=rides[i++];){
//用以下格式写出数据:“”,
fs.appendFileSync('Magic Kingdom'+TodayDate+'.csv',“\”“+ride.name+”,“\”“+”,”);
}
//转到csv中的下一行,因此时间将从下一行开始。
fs.appendFileSync('Magic Kingdom'+TodayDate+'.csv',时间戳);
fs.appendFileSync('Magic Kingdom'+TodayDate+'.csv','\r\n');
//重复等待时间间隔
设置间隔(MKTime,1000*3)
函数MKTime(){
for(var i=0,ride;ride=rides[i++];){
//用以下格式写出数据:“”,
fs.appendFileSync('Magic Kingdom'+TodayDate+'.csv',ride.waitTime+“,”);
//写出一个新行,这样当这个循环重复时,下一行将写在它自己的行上
}
fs.appendFileSync('Magic Kingdom'+TodayDate+'.csv',TimeDate);
//转到csv中的下一行,因此当下一个间隔开始时,时间将在下一行
fs.appendFileSync('Magic Kingdom'+TodayDate+'.csv','\r\n');
}
},console.error);

日期和时间变量是在代码块的开头创建的,而不是在由
setInterval
调用的函数中创建的。因此,它们将是运行代码时的样子,并且不会在多个
setInterval
调用中更改。一个简单的解决方法是在函数
MKTime
中移动这些变量,或者在该方法中定义新变量。

日期和时间变量是在代码块的开头创建的,而不是在
setInterval
调用的函数中创建的。因此,它们将是运行代码时的样子,并且不会在多个
setInterval
调用中更改。一个简单的解决方法是在函数
MKTime
中移动这些变量,或者在该方法中定义新变量。

当我将所有日期和时间变量移动到MKTime函数中时,我会得到一个正确日期和正确小时的重复时间戳,但小时会改变,但分钟不会改变。它坚持在01点。如果是11点48分或11点内的任何其他时间,则无论当前的实际分钟数是多少,它都将在11点01分显示。我尝试将所有日期变量(函数所需的变量)放入函数中并在函数中创建它们,我还尝试只放入“var TimeDate=dt.format('m-d-Y H:m');在函数中,结果是相同的。格式是正确的
m
=
month
MM
=
minute
应该是
var-TimeDate=dt.format('m-d-Y H:MM'));
当我将所有日期和时间变量移动到MKtime函数中时,我会得到一个正确日期和正确小时的重复时间戳,但小时会改变,但分钟不会改变。它会保持在01。如果是11:48或11中的任何其他时间,它将显示在11:01,无论实际的当前分钟是什么。我已经尝试放置所有日期变量(我需要的函数)并在函数中创建它们,我还尝试只放置“var TimeDate=dt.format('m-d-Y H:m');在函数中,结果是相同的。格式为正确的
m
=
month
MM
=
minute
应该是
var-TimeDate=dt.格式('m-d-Y H:MM')