setimmediate-napi
Version:
`setImmediate()` for N-API code
49 lines (35 loc) • 1.75 kB
Markdown
setimmediate-napi
=================
### `setImmediate()` for N-API code
[](https://greenkeeper.io/)
[](https://npmjs.org/package/setimmediate-napi)
[](https://npmjs.org/package/setimmediate-napi)
[](https://travis-ci.org/node-ffi-napi/setimmediate-napi?branch=master)
[](https://coveralls.io/r/node-ffi-napi/setimmediate-napi?branch=master)
[](https://david-dm.org/node-ffi-napi/setimmediate-napi)
Installation
------------
Install with `npm`:
``` bash
$ npm install setimmediate-napi
```
Usage
-----
In your `binding.gyp`:
```python
'include_dirs': ["<!@(node -p \"require('node-addon-api').include\")",
"<!@(node -p \"require('setimmediate-napi').include\")"],
```
(Just have `"<!@(node -p \"require('setimmediate-napi').include\")"` somewhere in that list, ok?)
In your C++ code:
```c++
#include <setimmediate.h>
int a = 10;
SetImmediate(env, [a]() {
/* do something with a ... */
});
```
Keep in mind:
- You need to use `Reference`s to keep track of JS objects, since this code runs asynchronously.
- Use `MakeCallback` rather than `Call` to make sure Node.js can track your async context.
- This function can be invoked even when executing JS code itself is not allowed.