将字符串设置为v8阵列
问题描述:
我使用Nan调查本地Node附件。将字符串设置为v8阵列
所以我想返回到节点串用下面的代码的数组:
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());