Promise support for Seneca.js microservices
- Lead Maintainer: Denis Luchkin-Zhou
- Sponsor: Ricepo
This plugin adds support for promises to Seneca, courtesy of Bluebird.
To install, use npm
npm install seneca-as-promised
Add in your code
require('seneca')()
.use('seneca-as-promised');
Behaves exactly like seneca.add()
, but supports promise-returning functions.
seneca.addAsync('role:hex,color:red', async function(msg) {
await someAsyncStuff();
return { color: '#FF0000' };
});
Actions added via addAsync()
have an additional priorAsync
method in the
this
context, which is a promisified version of this.prior()
.
Behaves exactly like seneca.act()
, but returns a promise. Also supports
callbacks.
const color = await seneca.actAsync('role:hex,color:red');
Behaves exactly like seneca.wrap()
, but supports promise-returning functions.
seneca.wrapAsync('role:hex', async function(msg) {
const color = await this.priorAsync(msg);
color.format = 'css';
return color;
});
Wrappers added via wrapAsync()
have an additional priorAsync
method in the
this
context, which is a promisified version of this.prior()
.
Copyright (C) 2015-16, Denis Luchkin-Zhou. Licensed under MIT