2015-10-05 2 views
0

Я исследую собственные Node-аддоны, используя Nan.Установите строку в v8 Array

Так что я пытаюсь вернуться к узлу массив строк с помощью следующего кода:

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()));

Но добавление элемента как целое (прокомментированная строка) работает правильно. Почему я не могу добавить строку в массив?

ответ

4

Таким образом, в конце концов я понял, что второй аргумент в случае нахождения строки должен быть обернут ToLocalChecked():

v8Array->Set(i, Nan::New<String>(results[i].c_str()).ToLocalChecked()); 
Смежные вопросы