nodejs中的回调与直接调用函数

Posted

技术标签:

【中文标题】nodejs中的回调与直接调用函数【英文标题】:callback vs direct calling function in nodejs 【发布时间】:2021-09-26 22:36:10 【问题描述】:

最初的问题是,如果我调用不带回调或带回调的函数有什么区别

我正在使用 ssh2 库列出远程 sftp 服务器上的目录,因为有一个函数“readdir”

如果我像下面这样调用 readdir,它就完美了

readdir(path, (err, list)=>
         console.log(list); //list have all data as it should be

但是如果我这样调用函数(在异步函数中正常使用它)

list= readdir(path);

上述代码从 ssh2 依赖 ssh2-streams 返回错误

错误是

cb is not a function
cb(undefined, stream); 

【问题讨论】:

【参考方案1】:

如果您查看https://github.com/mscdex/ssh2/blob/master/lib/protocol/SFTP.js 的源代码,您会看到该函数被描述为回调函数。 如果您不想引发错误,则需要将参数放在第一种情况下。

【讨论】:

以上是关于nodejs中的回调与直接调用函数的主要内容,如果未能解决你的问题,请参考以下文章

nodejs基础 -- 回调函数

nodejs学习笔记 --回调函数

Nodejs学习笔记

Nodejs的运行原理-函数回调篇

Nodejs:catch块中的回调函数在try-catch中返回未定义的参数

java里面,c里面都有回调函数,回调函数都是啥东西啊???