Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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 nodejs如何等待'require(';module';).runMain()`完成运行?_Javascript_Node.js_Async Await - Fatal编程技术网

Javascript nodejs如何等待'require(';module';).runMain()`完成运行?

Javascript nodejs如何等待'require(';module';).runMain()`完成运行?,javascript,node.js,async-await,Javascript,Node.js,Async Await,有两个文件t1.js和t2.js,它们使用命令行运行 $node t2.js f2 f1 #我想输出f1 f2,而不是f2 f1 我尝试使用async/await来解决这个问题,但没有找到使用它的方法,并且runMain()无法接受任何参数 文件内容 t1.js: const f1=新承诺(异步解析=>{ setTimeout(()=>resolve('f1'),1000) }) 新承诺(异步()=>{ console.log(等待f1) }) t2.js: newpromise(异步()=

有两个文件t1.js和t2.js,它们使用命令行运行

$node t2.js
f2
f1
#我想输出f1 f2,而不是f2 f1
我尝试使用
async/await
来解决这个问题,但没有找到使用它的方法,并且
runMain()
无法接受任何参数

文件内容 t1.js

const f1=新承诺(异步解析=>{
setTimeout(()=>resolve('f1'),1000)
})
新承诺(异步()=>{
console.log(等待f1)
})
t2.js

newpromise(异步()=>{
常量t1Path=uu dirname+'/t1.js'
process.argv=[process.argv[0],t1Path]
require('module')。runMain()
//wait require('module')。runMain()//这是无效的
console.log('f2')
})

什么是
需要的('module')
?哪里声明了
runMain
?顺便说一句!我从npx代码中理解了这个技巧:这似乎是一个错误。你为什么一开始就需要这个?为什么不使用一个合适的
导出
并以常规方式使用它呢?底线是
require()
是同步的。您编写的Promise和
async
函数不会更改任何内容,因为传递给
newpromise()
的函数会立即(同步)调用;将其设置为
异步
功能并不会改变这一点。什么是
需要('module')
?哪里声明了
runMain
?顺便说一句!我从npx代码中理解了这个技巧:这似乎是一个错误。你为什么一开始就需要这个?为什么不使用一个合适的
导出
并以常规方式使用它呢?底线是
require()
是同步的。您编写的Promise和
async
函数不会更改任何内容,因为传递给
newpromise()
的函数会立即(同步)调用;将其设置为
async
函数不会改变这一点。