如何在异步内调用外部回调?

时间:2016-05-17 11:57:18

标签: node.js callback socket.io

问题

我有一个参数是回调函数。当我在我的async瀑布函数中调用它时,它不会被调用。我的意思是这段代码:

代码

function myFunc(opts, callback){
var callback = callback || function () {};
...
async.waterfall(
        [async.apply(findUser, opt), function2],
        function (err, result) {
            if (err) {
                throw err;
            };

            if (result !== undefined && result.length !== 0) {
                foundUser = result;
                callback(null, "I called callback");                
            };

        });

消息I called callback不是来电。我的回调在我的测试代码中定义在另一个文件中。我正在使用socket io

我不知道问题出在哪里。任何评论表示赞赏

更新

我的callback代码是:

function myCallback (err, result) {     
        console.log("hello", "this is my callback");
        if (err) {
            console.log("err", err);
        }else{
            console.log("result is:", result);
        };      
    }

我怎么称呼它?

test.js

client.emit("event", message.encode().toBuffer(), myCallback);

(此文件中定义了myCallback

index.js

此文件处理event socket io事件:

mongoService.myFunc(userQueryParam, callback);

callback是传递给此事件处理程序的myCallback

service.js

此文件具有上述myFunc定义。

0 个答案:

没有答案