Javascript nodejs如何等待'require(';module';).runMain()`完成运行?
有两个文件t1.js和t2.js,它们使用命令行运行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(异步()=
$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
函数不会改变这一点。