NodeJS中的承诺是什么?

时间:2017-09-18 03:27:36

标签: javascript node.js asynchronous promise

我想在前言中说我来自Python世界,其中所有内容都是按行顺序排列的。

当我在Node JS终端上测试代码时,它运行正常,因为我按顺序输入代码行。但是当我运行程序时,就会发现很多错误都是由于Node JS的异步性造成的。

例如:我想运行一个mysql调用来存储数组。然后我想使用for循环遍历该数组的长度。但是当我运行程序文件时,节点会返回错误,因为在尝试执行for循环时没有定义数组(使用array.length来停止循环)。我认为这是我应该使用承诺的一个领域。

话虽如此,Node JS到处都充满了承诺吗?或者我错过了什么大事?

1 个答案:

答案 0 :(得分:1)

不一定是承诺,而是一般的回调和承诺。

由于NodeJS的性质是单线程的,它在很大程度上依赖于异步。否则,调用将阻塞线程,并且在处理SQL查询时不会执行任何其他工作。

如果您想以同步方式处理异步代码,请检查async/await或检查yield(使用生成器)。