我想在前言中说我来自Python世界,其中所有内容都是按行顺序排列的。
当我在Node JS终端上测试代码时,它运行正常,因为我按顺序输入代码行。但是当我运行程序时,就会发现很多错误都是由于Node JS的异步性造成的。
例如:我想运行一个mysql调用来存储数组。然后我想使用for循环遍历该数组的长度。但是当我运行程序文件时,节点会返回错误,因为在尝试执行for循环时没有定义数组(使用array.length来停止循环)。我认为这是我应该使用承诺的一个领域。
话虽如此,Node JS到处都充满了承诺吗?或者我错过了什么大事?
答案 0 :(得分:1)
不一定是承诺,而是一般的回调和承诺。
由于NodeJS的性质是单线程的,它在很大程度上依赖于异步。否则,调用将阻塞线程,并且在处理SQL查询时不会执行任何其他工作。
如果您想以同步方式处理异步代码,请检查async/await
或检查yield
(使用生成器)。