konstantinbueschel
5/24/2014 - 3:07 PM

promise-abort.js

var DIR = '/tmp/test',
    FILE_PATTERN = /test/,
    fs = require('q-io/fs');

fs.list(DIR)
.then(function (files) {
    var matched = files.filter(function (item) {
        return item.match(FILE_PATTERN);
    });
    if (matched.length !== 1) {
        var error = new Error("Can't delete nonce because " + matched.length + " entries found instead of merely 1");
        error.nonce = true;
        throw error;
    }
    return fs.remove(fs.join(DIR, matched[0]));
}, function (cause) {
    if (cause.code === "ENOENT") {
        var error = new Error("Can't delete nonce because directory not found");
        error.nonce = true;
    } else {
        throw cause;
    }
})
.catch(error) {
    if (error.nonce) {
        // Handle above cases
        // ....
    } else {
        throw error;
    }
})