in src/cpu_worker.cc [51:76]
void GetCPUWorker::HandleOKCallback() {
Nan::HandleScope scope;
v8::Local<v8::Array> process_array = v8::Local<v8::Array>::Cast(GetFromPersistent("processes"));
uint32_t count = process_array->Length();
// Transfer results into actual result object
v8::Local<v8::Array> result = Nan::New<v8::Array>(count);
for (uint32_t i = 0; i < count; i++) {
v8::Local<v8::Value> process;
v8::MaybeLocal<v8::Value> maybe_process = Nan::Get(process_array, Nan::New<v8::Integer>(i));
if (!maybe_process.ToLocal(&process))
continue;
v8::Local<v8::Object> object = Nan::To<v8::Object>(process).ToLocalChecked();
if (!std::isnan(cpu_info[i].cpu)) {
Nan::Set(object, Nan::New<v8::String>("cpu").ToLocalChecked(),
Nan::New<v8::Number>(cpu_info[i].cpu));
}
Nan::Set(result, i, Nan::New<v8::Value>(object));
}
v8::Local<v8::Value> argv[] = { result };
Nan::AsyncResource resource("windows-process-tree:addon.HandleOKCallback");
callback->Call(1, argv, &resource);
}