how to a return a vector<T> from v8 c++ function

南楼画角 提交于 2019-12-10 10:37:56

问题


struct empDetails {
int empId;
string name;
};

v8::Handle<v8::Value> GetEMPDetails(const v8::Arguments &args)
{  
    std::vector<empDetails>  e1;
    e1.push_back(empDetails(23, "paul"));
    e1.push_back(empDetails(45, "john")); 

    // how can I return V8 handle so that I can use this vector in 
    // my javascript module
    return e1; 
}

here I wanna return e1 to javascript module, could someone please let me know how to do this?


回答1:


Use v8::Array, e.g:

v8::Handle<v8::Array> result = v8::Array::New(e1.size());
for (size_t i = 0; i < e1.size(); i++)
  result->Set(i, someObject);

Obviously you still need to convert your empDetails instance to v8::Object for each entry in the vector.



来源:https://stackoverflow.com/questions/13282526/how-to-a-return-a-vectort-from-v8-c-function

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!