void MakeCallback(uv_work_t* req) { Nan::HandleScope scope; Nan::TryCatch try_catch; sass_context_wrapper* ctx_w = static_cast<sass_context_wrapper*>(req->data); struct Sass_Context* ctx; if (ctx_w->dctx) { ctx = sass_data_context_get_context(ctx_w->dctx); } else { ctx = sass_file_context_get_context(ctx_w->fctx); } int status = GetResult(ctx_w, ctx); if (status == 0 && ctx_w->success_callback) { // if no error, do callback(null, result) ctx_w->success_callback->Call(0, 0); } else if (ctx_w->error_callback) { // if error, do callback(error) const char* err = sass_context_get_error_json(ctx); v8::Local<v8::Value> argv[] = { Nan::New<v8::String>(err).ToLocalChecked() }; ctx_w->error_callback->Call(1, argv); } if (try_catch.HasCaught()) { Nan::FatalException(try_catch); } sass_free_context_wrapper(ctx_w); }
void make_callback(uv_work_t* req) { NanScope(); TryCatch try_catch; sass_context_wrapper* ctx_w = static_cast<sass_context_wrapper*>(req->data); struct Sass_Context* ctx; if (ctx_w->dctx) { ctx = sass_data_context_get_context(ctx_w->dctx); } else { ctx = sass_file_context_get_context(ctx_w->fctx); } int status = GetResult(ctx_w, ctx); if (status == 0 && ctx_w->success_callback) { // if no error, do callback(null, result) ctx_w->success_callback->Call(0, 0); } else if(ctx_w->error_callback) { // if error, do callback(error) const char* err = sass_context_get_error_json(ctx); Local<Value> argv[] = { NanNew<String>(err), NanNew<Integer>(status) }; ctx_w->error_callback->Call(2, argv); } if (try_catch.HasCaught()) { node::FatalException(try_catch); } if (ctx_w->importer_callback) { uv_close((uv_handle_t*)&ctx_w->async, NULL); } sass_free_context_wrapper(ctx_w); }