最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何使代码按顺序在node.js中执行

IT培训 admin 3浏览 0评论

如何使代码按顺序在node.js中执行

我正在尝试完成我的脚本,但是由于某种原因我不知道,它拒绝按照我输入的顺序执行。

我已经尝试在JoinRequest更新函数和以下代码之间放置一个'wait'函数,但是在运行时,它的作用就像函数调用和wait函数是相反的,从而抵消了wait()的问题。 。


const Roblox = require('noblox.js')
var fs = require('fs');

var joinRequests = []

...


function wait(ms) {
  var d = new Date();
  var d2 = null;
  do { d2 = new Date(); }
  while(d2-d < ms*1000);
};


...


function updateJReqs() {
  Roblox.getJoinRequests(4745601).then((array) => {
    var i;
    var final = [];
    for(i = 0; i < array.length; i++) {
      final.push(array[i].username);
    };
    if(final === '') {
      final = '-None';
    };
    joinRequests = final
    console.log('Updated join requests.')
  });
}

function check() {
   setTimeout(() => {
       fs.readFile('Request.txt',encoding = 'utf-8', function(err, data) {
          if (err) {
              check();
          } else {
              updateJReqs();  //for some reason this function is executed alongside the below, not before it.
              // Tried putting wait(x) in here.
              console.log('Request received: ' + data)
              var solution = joinRequests
              console.log('Fuffiling request with ' + solution)
              fufillRequest(solution)
              fs.unlink('Request.txt', function(err) {
                if(err) throw err;
              });
              check();
          }
       });
   }, 400)
}

check();

脚本应该等待,直到创建(完成)文件,更新联接请求列表(完成),然后创建包含联接请求列表的新文件(未完成)。>>

我正在尝试完成我的脚本,但是由于某种原因,我不知道,它拒绝按照我输入的顺序执行。我试图在JoinRequest更新函数和之间放置一个'wait'函数。 ..

回答如下:

如果我了解您的代码,并且使用了异步代码,则需要在updateJReqs中返回一个promise并添加一个离开函数的条件,因为您具有无限递归的条件。

如何使代码按顺序在node.js中执行

我正在尝试完成我的脚本,但是由于某种原因我不知道,它拒绝按照我输入的顺序执行。

我已经尝试在JoinRequest更新函数和以下代码之间放置一个'wait'函数,但是在运行时,它的作用就像函数调用和wait函数是相反的,从而抵消了wait()的问题。 。


const Roblox = require('noblox.js')
var fs = require('fs');

var joinRequests = []

...


function wait(ms) {
  var d = new Date();
  var d2 = null;
  do { d2 = new Date(); }
  while(d2-d < ms*1000);
};


...


function updateJReqs() {
  Roblox.getJoinRequests(4745601).then((array) => {
    var i;
    var final = [];
    for(i = 0; i < array.length; i++) {
      final.push(array[i].username);
    };
    if(final === '') {
      final = '-None';
    };
    joinRequests = final
    console.log('Updated join requests.')
  });
}

function check() {
   setTimeout(() => {
       fs.readFile('Request.txt',encoding = 'utf-8', function(err, data) {
          if (err) {
              check();
          } else {
              updateJReqs();  //for some reason this function is executed alongside the below, not before it.
              // Tried putting wait(x) in here.
              console.log('Request received: ' + data)
              var solution = joinRequests
              console.log('Fuffiling request with ' + solution)
              fufillRequest(solution)
              fs.unlink('Request.txt', function(err) {
                if(err) throw err;
              });
              check();
          }
       });
   }, 400)
}

check();

脚本应该等待,直到创建(完成)文件,更新联接请求列表(完成),然后创建包含联接请求列表的新文件(未完成)。>>

我正在尝试完成我的脚本,但是由于某种原因,我不知道,它拒绝按照我输入的顺序执行。我试图在JoinRequest更新函数和之间放置一个'wait'函数。 ..

回答如下:

如果我了解您的代码,并且使用了异步代码,则需要在updateJReqs中返回一个promise并添加一个离开函数的条件,因为您具有无限递归的条件。

发布评论

评论列表 (0)

  1. 暂无评论