【发布时间】:2018-04-04 03:22:58
【问题描述】:
我正在尝试了解 Javascript 的异步行为,我们如何在正常功能中实现。例如下面的代码,我正在尝试实现一个自定义的 SetTimeout 函数,该函数可以异步工作。它应该调用函数muCsutSetInterval 并转到console.log("after");。
请提出正确的方法。感谢您的帮助..
var myCustSetInterval = function (time, callback){
let initial = new Date();
let current;
while(true){
current = new Date();
if(current.getTime()-initial.getTime()===time){
break;
}
}
callback();
}
console.log("before");
myCustSetInterval(5000,()=>{
console.log("Callback");
});
console.log("after");
【问题讨论】:
-
你不能。使用
setTimeout! -
javascript 是同步的。要获得异步结果,您必须依赖不受该规则约束的 apis。
-
@Igor - 我可能错了,但我认为这不是 OP 所要求的。我相信 OP 有兴趣了解 Async/Await 和 Promise 对象的使用。
-
@RandyCasburn - 也许吧。不过,我在问题中没有看到任何对关键字 async/await 的引用。
-
正确 - 按标签进行
标签: javascript node.js asynchronous async-await