JSPM

async-replace

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1753
  • Score
    100M100P100Q108610F
  • License MIT

Run replace on a string and update it asynchronous

Package Exports

  • async-replace

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (async-replace) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

#async-replacebuild status

Run replace on a string and update it asynchronous.

usage

async-replace have the same api as the callback-version of String.prototype.replace but instead of returning the changed data another callback is called, making it possible to do asynchronous stuff in the callback.

This may sound more complicated than it is, so let's look at an example.

function replacer(match, p1, p2, p3, offset, string){
    // p1 is nondigits, p2 digits, and p3 non-alphanumerics
    return [p1, p2, p3].join(' - ');
};
newString = "abc12345#$*%".replace(/([^\d]*)(\d*)([^\w]*)/, replacer);

Above is an example of using String.prototype.replace with a callback. The above could then be written in async-replace like this

function replacer(match, p1, p2, p3, offset, string, done){
    // p1 is nondigits, p2 digits, and p3 non-alphanumerics
    setTimeout(function() {
        done(null, [p1, p2, p3].join(' - '));
    }, 100);
};
asyncReplace("abc12345#$*%", /([^\d]*)(\d*)([^\w]*)/, replacer, function(err, result) {
    console.log(result); // will print 'abc - 12345 - #$*%';
});