将字符串设置为 v8 数组
Set a string to v8 Array
我研究了使用 Nan 的本机 Node 插件。
所以我试图 return 返回 Node 一个字符串数组,代码如下:
NAN_METHOD(open) {
Local<Array> v8Array = Nan::New<Array>();
std::string str = "erwer";
v8Array->Set(0, Nan::New<String>(str.c_str()) );
//v8Array->Set(0, Nan::New<Integer>(12) );
info.GetReturnValue().Set(v8Array);
}
但是没有编译:
error: no matching function for call to ‘v8::Array::Set(int, Nan::imp::MaybeFactoryBase<v8::String>::return_t)’
v8Array->Set(0, Nan::New<String>(str.c_str()) );
但是添加一个项目作为整数(注释行)工作正常。
为什么我不能将字符串添加到数组?
所以,最后我意识到,如果是字符串,第二个参数应该用 ToLocalChecked() 包装起来:
v8Array->Set(i, Nan::New<String>(results[i].c_str()).ToLocalChecked() );
我研究了使用 Nan 的本机 Node 插件。
所以我试图 return 返回 Node 一个字符串数组,代码如下:
NAN_METHOD(open) {
Local<Array> v8Array = Nan::New<Array>();
std::string str = "erwer";
v8Array->Set(0, Nan::New<String>(str.c_str()) );
//v8Array->Set(0, Nan::New<Integer>(12) );
info.GetReturnValue().Set(v8Array);
}
但是没有编译:
error: no matching function for call to ‘v8::Array::Set(int, Nan::imp::MaybeFactoryBase<v8::String>::return_t)’
v8Array->Set(0, Nan::New<String>(str.c_str()) );
但是添加一个项目作为整数(注释行)工作正常。 为什么我不能将字符串添加到数组?
所以,最后我意识到,如果是字符串,第二个参数应该用 ToLocalChecked() 包装起来:
v8Array->Set(i, Nan::New<String>(results[i].c_str()).ToLocalChecked() );