【发布时间】:2019-08-21 05:34:17
【问题描述】:
async function testSync() {
var result = await new Promise(function (resolve) {
test(function (result) {
resolve(result);
});
});
return result;
}
function test(callback) {
setTimeout(callback, 1000);
}
async function run() {
console.log(1);
var r = await testSync();
console.log(r)
console.log(3);
}
run();
我成功地做了两个函数。一个异步一个同步,但是我不得不将 testSync() 放在异步函数中。
但是运行节点模块函数fs.readfilesync(),比如我不用做
那。有人可以解释我为什么以及如何制作同步功能,例如
fs 是吗?
【问题讨论】:
-
不,你所有的函数都可以被认为是异步的。尤其是定义为
async function的那些。您通过不对它们执行任何异步操作来创建同步函数。基础库中不可能实现同步睡眠,这也不是一个好主意。 -
nodejs 中的同步
fs函数很可能是用 c/c++ 编码的——因此,在 nodejs 中创建同步函数的一种方法是使用 node-FFI,例如 -
如果某件事看起来很难,这可能表明这是解决您要解决的任何问题的糟糕方法。你能state your real problem,假设这不是纯粹出于好奇吗?谢谢。
标签: javascript node.js