登录
注册
node.js 学习社区
为nodejs写C++拓展(七)node4.1 callback

真马克

2015-09-19 09:45

先上结果:

项目结构:

js代码:

 var cb = require('./Release/cbfunc.node');
 
cb.CB( "我会回来的" ,function( cb1 , cb2 ) {
    console.log( "第一个:"+ cb1 );
    console.log( "第二个:" + cb2);
}); 
CPP代码:

#include <node.h>

namespace demo
{
using v8::FunctionCallbackInfo;
using v8::HandleScope;
using v8::Isolate;
using v8::Local;
using v8::Object;
using v8::Array;
using v8::String;
using v8::Value;
using v8::Null;
using v8::Function;

void Method(const FunctionCallbackInfo<Value>& args) {
  Isolate* isolate = args.GetIsolate();
 
  Local<String> var1 = args[0]->ToString();
  
  
  const int i = 2;
  Local<Function> cbfunc = Local<Function>::Cast( args[1] );
  Local<Value> argv[i] = { var1,var1 };
  
  cbfunc->Call( Null(isolate), i, argv); //Call第二个形参是指“回调函数有多少个形参”
 
}

void init(Local<Object> exports) {
  NODE_SET_METHOD(exports, "CB", Method);
}

NODE_MODULE(addon, init)

} 

binding.gyp

{
  'targets': [
    {
      'target_name': 'cbfunc',
      'sources': [ 'callbackfunc.cc' ]
    }
  ]
} 



回复 · 0

发表回复

你可以在回复中 @ 其他人