【发布时间】:2020-05-04 15:26:50
【问题描述】:
我有两个 .js 文件:/Desktop/firstFolder/first.js 和 /Desktop/secondFolder/second.js。
我希望first 先工作,然后再执行second。在second 的末尾,我希望它再次执行first,依此类推。听起来很简单,对吧?
first 工作正常,然后second 正在做它的工作,然后它停止工作。为什么我不能第二次执行first?
所以first 和second 脚本尽可能简单:
console.log('first.js works, launching second.js');
process.chdir('/Users/apple/Desktop/secondFolder');
require('/Users/apple/Desktop/secondFolder/second.js');
console.log('second.js works, launching first.js');
process.chdir('/Users/apple/Desktop/firstFolder');
require('/Users/apple/Desktop/firstFolder/first.js');
来自终端的日志:
first.js works, launching second.js
second.js works, launching first.js
Apples-MacBook-Air:firstFolder apple$
为什么它停止工作? javascript是否会阻止自身无限循环?有办法实现吗?
有一个suggested question,但它不同,因为他们询问如何让一个 .js 文件多次执行另一个 .js 文件,而不是两个 .js 文件相互执行。更重要的是,我尝试对我的代码做同样的事情,我将两个 .js 文件包装在 module.exports = function() {} 中,并在每个 require 的末尾添加了一个额外的 () 但现在它会抛出一个错误:
require('/Users/apple/Desktop/firstFolder/first')();
^
TypeError: require(...) is not a function
【问题讨论】:
-
这能回答你的问题吗? Require multiple times
-
它会抛出一个错误。
TypeError: require(...) is not a function
标签: javascript node.js directory infinite-loop require