in src/Reader.cc [243:265]
Napi::Value Reader::Seek(const Napi::CallbackInfo &info) {
auto obj = info[0].As<Napi::Object>();
auto *msgId = MessageId::Unwrap(obj);
auto deferred = ThreadSafeDeferred::New(Env());
auto ctx = new ExtDeferredContext(deferred);
pulsar_reader_seek_async(
this->cReader.get(), msgId->GetCMessageId().get(),
[](pulsar_result result, void *ctx) {
auto deferredContext = static_cast<ExtDeferredContext *>(ctx);
auto deferred = deferredContext->deferred;
delete deferredContext;
if (result != pulsar_result_Ok) {
deferred->Reject(std::string("Failed to seek message by id: ") + pulsar_result_str(result));
} else {
deferred->Resolve(THREADSAFE_DEFERRED_RESOLVER(env.Null()));
}
},
ctx);
return deferred->Promise();
}