Rod*_*Rod 2 javascript node.js
鉴于下面的结果,我期待working出现在begin和end线之间.
规则:
有没有办法让它工作而不改变app.js文件?
app.js
const service = require('./service');
console.log('*********** begin ***********');
(async () => {
const results = await service.init();
})();
console.log('*********** end ***********');
Run Code Online (Sandbox Code Playgroud)
service.js
exports.init = () => {
return new Promise((reject, resolve) => {
setTimeout(() => {
console.log('working...');
}, 2000);
});
};
Run Code Online (Sandbox Code Playgroud)
结果:
C:\code\practice\promise-exercise2>node index.js
*********** begin ***********
*********** end ***********
working...
Run Code Online (Sandbox Code Playgroud)
app.js呼吁双方console.log('begin')和console.log('end') 同步,同时working是异步的.我想你可以通过改变同步service.js打印来改变它,但这可能与你的用例不符.所以,没有改变就不可能实现.working app.js
如果您想要这样的东西,您可以end 在以下内容async之后放入函数内部await:
console.log('*********** begin ***********');
(async () => {
const results = await service.init();
console.log('*********** end ***********');
})();
Run Code Online (Sandbox Code Playgroud)