Twilio's Node.JS API natively supports promises, allowing you to use promises when sending SMS messages (this example was taken and adapted directly from Twilio's API Docs).
// Create an authenticated Twilio REST API client
var twilio = require('twilio');
var client = new twilio.RestClient('ACCOUNT_SID', 'AUTH_TOKEN');
// A simple example of sending an sms message using promises
var promise = client.makeCall({
    to:'+16515556667777', // a number to call
    from:'+16518889999', // a Twilio number you own
    body: 'Hello, world.' // A URL containing TwiML instructions for the call
});
// You can assign functions to be called, at any time, after the request to
// Twilio has been completed.  The first function is called when the request
// succeeds, the second if there was an error.
promise
.then(function(sms) {
    console.log('Call success! SMS SID: ' + sms.sid);
}, function(error) {
    console.error('Call failed!  Reason: ' + error.message);
});