Skip to content

Commit 1e59be1

Browse files
committed
feat: switch to native Promise
1 parent d87348d commit 1e59be1

10 files changed

+138
-72
lines changed

.travis.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
language: node_js
22
node_js:
3-
- "0.8"
4-
- "0.10"
53
- "0.12"
64
- "iojs-v1"
75
- "iojs-v2"

channel_api.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
var raw_connect = require('./lib/connect').connect;
22
var ChannelModel = require('./lib/channel_model').ChannelModel;
3-
var Promise = require('bluebird');
43

54
function connect(url, connOptions) {
6-
return Promise.fromCallback(function(cb) {
7-
return raw_connect(url, connOptions, cb);
5+
return new Promise(function (resolve, reject) {
6+
raw_connect(url, connOptions, function (err, result) {
7+
if (err) {
8+
reject(err);
9+
} else {
10+
resolve(result);
11+
}
12+
})
813
})
914
.then(function(conn) {
1015
return new ChannelModel(conn);

examples/tutorials/receive_logs_direct.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#!/usr/bin/env node
22

33
var amqp = require('amqplib');
4-
var all = require('bluebird').all;
54
var basename = require('path').basename;
65

76
var severities = process.argv.slice(2);
@@ -24,7 +23,7 @@ amqp.connect('amqp://localhost').then(function(conn) {
2423

2524
ok = ok.then(function(qok) {
2625
var queue = qok.queue;
27-
return all(severities.map(function(sev) {
26+
return Promise.all(severities.map(function(sev) {
2827
ch.bindQueue(queue, ex, sev);
2928
})).then(function() { return queue; });
3029
});

examples/tutorials/receive_logs_topic.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
var amqp = require('amqplib');
44
var basename = require('path').basename;
5-
var all = require('bluebird').all;
65

76
var keys = process.argv.slice(2);
87
if (keys.length < 1) {
@@ -23,7 +22,7 @@ amqp.connect('amqp://localhost').then(function(conn) {
2322

2423
ok = ok.then(function(qok) {
2524
var queue = qok.queue;
26-
return all(keys.map(function(rk) {
25+
return Promise.all(keys.map(function(rk) {
2726
ch.bindQueue(queue, ex, rk);
2827
})).then(function() { return queue; });
2928
});

examples/tutorials/rpc_client.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
var amqp = require('amqplib');
44
var basename = require('path').basename;
5-
var Promise = require('bluebird');
65
var uuid = require('node-uuid');
76

87
// I've departed from the form of the original RPC tutorial, which

lib/callback_model.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
'use strict';
66

77
var defs = require('./defs');
8-
var Promise = require('bluebird');
98
var inherits = require('util').inherits;
109
var EventEmitter = require('events').EventEmitter;
1110
var BaseChannel = require('./channel').BaseChannel;

lib/channel_model.js

Lines changed: 66 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
'use strict';
66

77
var defs = require('./defs');
8-
var Promise = require('bluebird');
8+
var Bluebird = require('bluebird');
99
var inherits = require('util').inherits;
1010
var EventEmitter = require('events').EventEmitter;
1111
var BaseChannel = require('./channel').BaseChannel;
@@ -29,7 +29,17 @@ module.exports.ChannelModel = ChannelModel;
2929
var CM = ChannelModel.prototype;
3030

3131
CM.close = function() {
32-
return Promise.fromCallback(this.connection.close.bind(this.connection));
32+
var close = this.connection.close.bind(this.connection);
33+
34+
return new Promise(function (resolve, reject) {
35+
close(function (err, result) {
36+
if (err) {
37+
reject(err);
38+
} else {
39+
resolve(result);
40+
}
41+
});
42+
});
3343
};
3444

3545
// Channels
@@ -55,17 +65,31 @@ var C = Channel.prototype;
5565
// API procedures.
5666
C.rpc = function(method, fields, expect) {
5767
var self = this;
58-
return Promise.fromCallback(function(cb) {
59-
return self._rpc(method, fields, expect, cb);
60-
})
61-
.then(function(f) {
68+
69+
return new Promise(function (resolve, reject) {
70+
self._rpc(method, fields, expect, function (err, result) {
71+
if (err) {
72+
reject(err);
73+
} else {
74+
resolve(result);
75+
}
76+
});
77+
}).then(function (f) {
6278
return f.fields;
6379
});
6480
};
6581

6682
// Do the remarkably simple channel open handshake
6783
C.open = function() {
68-
return Promise.try(this.allocate.bind(this)).then(
84+
var allocate = this.allocate.bind(this);
85+
86+
return new Promise(function (resolve, reject) {
87+
try {
88+
resolve(allocate());
89+
} catch (e) {
90+
reject(e);
91+
}
92+
}).then(
6993
function(ch) {
7094
return ch.rpc(defs.ChannelOpen, {outOfBand: ""},
7195
defs.ChannelOpenOk);
@@ -74,10 +98,16 @@ C.open = function() {
7498

7599
C.close = function() {
76100
var self = this;
77-
return Promise.fromCallback(function(cb) {
101+
102+
return Bluebird.fromCallback(function(cb) {
78103
return self.closeBecause("Goodbye", defs.constants.REPLY_SUCCESS,
79104
cb);
80105
});
106+
// return new Promise(function(resolve, reject) {
107+
// return self.closeBecause("Goodbye", defs.constants.REPLY_SUCCESS,
108+
// (err, result) => err ? reject(err) : resolve(result)
109+
// );
110+
// });
81111
};
82112

83113
// === Public API, declaring queues and stuff ===
@@ -167,9 +197,18 @@ C.consume = function(queue, callback, options) {
167197
// NB we want the callback to be run synchronously, so that we've
168198
// registered the consumerTag before any messages can arrive.
169199
var fields = Args.consume(queue, options);
170-
return Promise.fromCallback(function(cb) {
200+
return Bluebird.fromCallback(function(cb) {
171201
self._rpc(defs.BasicConsume, fields, defs.BasicConsumeOk, cb);
172202
})
203+
// return new Promise(function(resolve, reject) {
204+
// self._rpc(defs.BasicConsume, fields, defs.BasicConsumeOk, function (err, result) {
205+
// if (err) {
206+
// reject(err);
207+
// } else {
208+
// resolve(result);
209+
// }
210+
// });
211+
// })
173212
.then(function(ok) {
174213
self.registerConsumer(ok.fields.consumerTag, callback);
175214
return ok.fields;
@@ -178,10 +217,16 @@ C.consume = function(queue, callback, options) {
178217

179218
C.cancel = function(consumerTag) {
180219
var self = this;
181-
return Promise.fromCallback(function(cb) {
220+
return new Promise(function(resolve, reject) {
182221
self._rpc(defs.BasicCancel, Args.cancel(consumerTag),
183222
defs.BasicCancelOk,
184-
cb);
223+
function (err, result) {
224+
if (err) {
225+
reject(err);
226+
} else {
227+
resolve(result);
228+
}
229+
});
185230
})
186231
.then(function(ok) {
187232
self.unregisterConsumer(consumerTag);
@@ -192,9 +237,18 @@ C.cancel = function(consumerTag) {
192237
C.get = function(queue, options) {
193238
var self = this;
194239
var fields = Args.get(queue, options);
195-
return Promise.fromCallback(function(cb) {
240+
return Bluebird.fromCallback(function(cb) {
196241
return self.sendOrEnqueue(defs.BasicGet, fields, cb);
197242
})
243+
// return new Promise(function(resolve, reject) {
244+
// return self.sendOrEnqueue(defs.BasicGet, fields, function (err, result) {
245+
// if (err) {
246+
// reject(err);
247+
// } else {
248+
// resolve(result);
249+
// }
250+
// });
251+
// })
198252
.then(function(f) {
199253
if (f.id === defs.BasicGetEmpty) {
200254
return false;

test/channel.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
'use strict';
44

55
var assert = require('assert');
6-
var Promise = require('bluebird');
76
var Channel = require('../lib/channel').Channel;
87
var Connection = require('../lib/connection').Connection;
98
var util = require('./util');
@@ -77,11 +76,19 @@ var DELIVER_FIELDS = {
7776
};
7877

7978
function open(ch) {
80-
return Promise.try(function() {
81-
ch.allocate();
82-
return Promise.fromCallback(function(cb) {
83-
ch._rpc(defs.ChannelOpen, {outOfBand: ''}, defs.ChannelOpenOk, cb);
84-
});
79+
return new Promise(function (resolve, reject) {
80+
try {
81+
ch.allocate();
82+
ch._rpc(defs.ChannelOpen, {outOfBand: ''}, defs.ChannelOpenOk, function (err, done) {
83+
if (err) {
84+
reject(err);
85+
} else {
86+
resolve(done);
87+
}
88+
});
89+
} catch (e) {
90+
reject(e);
91+
}
8592
});
8693
}
8794

@@ -286,7 +293,7 @@ test("RPC on closed channel", channelTest(
286293
failureCb(resolve, reject));
287294
});
288295

289-
Promise.join(close, fail1, fail2)
296+
Promise.all([close, fail1, fail2])
290297
.then(succeed(done))
291298
.catch(fail(done));
292299
},

0 commit comments

Comments
 (0)