可以使用Isolate::Scope将Promise对象包装在异步工作对象之外。具体实现如下所示:
void AsyncWork::OnOK() { Isolate* isolate = Isolate::GetCurrent(); HandleScope handleScope(isolate); // 包装异步工作对象 Local asyncWorkObj = Local::New(isolate, AsyncWorkObject); AsyncWorkData* asyncWorkData = Nan::ObjectWrap::Unwrap(asyncWorkObj); // 包装Promise对象 Local resolver = Local::New(isolate, asyncWorkData->Resolver); // 在Isolate::Scope环境下解决Promise Isolate::Scope isolateScope(isolate); resolver->Resolve(Nan::New("success").ToLocalChecked()); }
上一篇:asyncwith在超时时是否能够正常关闭aiohttp.ClientSession()对象,即使没有调用asyncio.sleep(0)?
下一篇:AsyncWriteExt不会将所有字节写入Rust TcpStream。