setTimeout / setInmmediate / nextTick使函数异步?

时间:2016-03-21 15:06:36

标签: javascript node.js asynchronous settimeout

几天前,我在思考(节点中的noob),出于神奇的原因,如果我创建一个接收回调的函数,它将是异步的:

function fakeAsync(someArgument, callback) {
     //Do some work
     callback()
}

我的逻辑很差,而且我做的很少的测试表明事情并没有像那样工作:P所以我去了Node的fs.readFile源并尝试弄清楚是什么让这个函数异步。事实上我并不是那么理解,但我看到了对process.nextTick的调用(如果我的记忆没有失败)。我结束了关于异步模式等的阅读,但我觉得我不了解基本方面。

问题:使用process.nextTick / setImmediate(node)和setTimeout(浏览器中的js)会使函数异步?例如:

var array_to_fill = []

function async_fill(elements, array, callback) {
    process.nextTick(()=>{
       elements.forEach((e)=>{array.push(e)})
       callback(array) 
    });
}


async_fill([1,2,3], array_to_fill, (array)=>{
    console.log(array)
})
console.log('This is displayed first!')

这真的是异步吗?这是什么使得Promise"然后" async(我读到A +需要'然后'在异步fhasion中)?此外,阵列的每个方法都会干扰"可能的"由于它的阻塞性质导致功能不同步?

我真的迷失了。任何帮助将不胜感激。哦,对不起我的坏英语:)

高级谢谢!

0 个答案:

没有答案
相关问题