Security News
NIST Misses 2024 Deadline to Clear NVD Backlog
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
@google-cloud/promisify
Advanced tools
A simple utility for promisifying functions and classes.
@google-cloud/promisify is a utility library that helps convert callback-based functions to promise-based functions. This is particularly useful for modern JavaScript development where promises and async/await syntax are preferred over traditional callback patterns.
Promisify a single function
This feature allows you to convert a single callback-based function to a promise-based function. The code sample demonstrates how to use the `promisify` function to convert a traditional callback function into one that returns a promise.
const {promisify} = require('@google-cloud/promisify');
function callbackFunction(arg1, arg2, callback) {
// Simulate an asynchronous operation
setTimeout(() => {
callback(null, 'result');
}, 1000);
}
const promiseFunction = promisify(callbackFunction);
promiseFunction('arg1', 'arg2').then(result => {
console.log(result); // 'result'
}).catch(err => {
console.error(err);
});
Promisify all functions in an object
This feature allows you to promisify all functions in an object. The code sample demonstrates how to use the `promisifyAll` function to convert all callback-based functions in an object to promise-based functions, appending 'Async' to the function names.
const {promisifyAll} = require('@google-cloud/promisify');
const obj = {
callbackFunction(arg1, arg2, callback) {
setTimeout(() => {
callback(null, 'result');
}, 1000);
}
};
promisifyAll(obj);
obj.callbackFunctionAsync('arg1', 'arg2').then(result => {
console.log(result); // 'result'
}).catch(err => {
console.error(err);
});
The `util.promisify` function is a built-in Node.js utility that converts callback-based functions to promise-based functions. It is similar to @google-cloud/promisify but is part of the Node.js standard library, making it a more straightforward choice for many developers.
Bluebird is a fully-featured promise library that includes a `promisify` function to convert callback-based functions to promise-based ones. It offers more features and better performance compared to @google-cloud/promisify, but it is a larger library and may be overkill for simple use cases.
Pify is a lightweight library that provides a simple way to promisify callback-based functions. It is similar to @google-cloud/promisify but is more minimalistic and has fewer dependencies, making it a good choice for smaller projects.
A simple utility for promisifying functions and classes.
Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in Client Libraries Explained.
Table of contents:
npm install @google-cloud/promisify
const {promisify} = require('@google-cloud/promisify');
/**
* This is a very basic example function that accepts a callback.
*/
function someCallbackFunction(name, callback) {
if (!name) {
callback(new Error('Name is required!'));
} else {
callback(null, `Well hello there, ${name}!`);
}
}
// let's promisify it!
const somePromiseFunction = promisify(someCallbackFunction);
async function quickstart() {
// now we can just `await` the function to use it like a promisified method
const [result] = await somePromiseFunction('nodestronaut');
console.log(result);
}
quickstart();
It's unlikely you will need to install this package directly, as it will be
installed as a dependency when you install other @google-cloud
packages.
Samples are in the samples/
directory. The samples' README.md
has instructions for running the samples.
Sample | Source Code | Try it |
---|---|---|
Quickstart | source code |
The Google Cloud Common Promisify Node.js Client API Reference documentation also contains samples.
This library follows Semantic Versioning.
This library is considered to be General Availability (GA). This means it is stable; the code surface will not change in backwards-incompatible ways unless absolutely necessary (e.g. because of critical security issues) or with an extensive deprecation period. Issues and requests against GA libraries are addressed with the highest priority.
More Information: Google Cloud Platform Launch Stages
Contributions welcome! See the Contributing Guide.
Apache Version 2.0
See LICENSE
FAQs
A simple utility for promisifying functions and classes.
The npm package @google-cloud/promisify receives a total of 4,682,985 weekly downloads. As such, @google-cloud/promisify popularity was classified as popular.
We found that @google-cloud/promisify demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.