diff options
author | Marek Kotewicz <marek.kotewicz@gmail.com> | 2014-11-07 21:03:46 +0800 |
---|---|---|
committer | Marek Kotewicz <marek.kotewicz@gmail.com> | 2014-11-07 21:03:46 +0800 |
commit | 0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449 (patch) | |
tree | 638907e31c292bea4210b484cea64d7f91d1605c | |
parent | b0e11826e5f5e73f37304365fbaf504ed53d7886 (diff) | |
download | go-tangerine-0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449.tar go-tangerine-0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449.tar.gz go-tangerine-0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449.tar.bz2 go-tangerine-0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449.tar.lz go-tangerine-0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449.tar.xz go-tangerine-0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449.tar.zst go-tangerine-0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449.zip |
proper error handling proposal
-rw-r--r-- | httprpc.js | 5 | ||||
-rw-r--r-- | main.js | 26 |
2 files changed, 18 insertions, 13 deletions
diff --git a/httprpc.js b/httprpc.js index ef29133e8..e738e1f0f 100644 --- a/httprpc.js +++ b/httprpc.js @@ -40,7 +40,8 @@ return { _id: object.id, - data: object.result + data: object.result, + error: object.error }; }; @@ -70,7 +71,7 @@ var self = this; this.sendRequest(payload, function (request) { var parsed = JSON.parse(request.responseText); - if (parsed.result instanceof Array ? parsed.result.length === 0 : !parsed.result) { + if (parsed.error || (parsed.result instanceof Array ? parsed.result.length === 0 : !parsed.result)) { return; } self.handlers.forEach(function (handler) { @@ -153,15 +153,15 @@ return {call: call, args: args}; }).then(function (request) { return new Promise(function (resolve, reject) { - web3.provider.send(request, function (result) { - if (result || typeof result === "boolean") { + web3.provider.send(request, function (err, result) { + if (!err) { resolve(result); return; } - reject(result); + reject(err); }); }); - }).catch(function( err) { + }).catch(function(err) { console.error(err); }); }; @@ -173,8 +173,12 @@ var proto = {}; proto.get = function () { return new Promise(function(resolve, reject) { - web3.provider.send({call: property.getter}, function(result) { - resolve(result); + web3.provider.send({call: property.getter}, function(err, result) { + if (!err) { + resolve(result); + return + } + reject(err); }); }); }; @@ -182,12 +186,12 @@ proto.set = function (val) { return flattenPromise([val]).then(function (args) { return new Promise(function (resolve) { - web3.provider.send({call: property.setter, args: args}, function (result) { - if (result) { + web3.provider.send({call: property.setter, args: args}, function (err, result) { + if (!err) { resolve(result); - } else { - reject(result); + return } + reject(err); }); }); }).catch(function (err) { @@ -438,7 +442,7 @@ if(data._id) { var cb = web3._callbacks[data._id]; if (cb) { - cb.call(this, data.data) + cb.call(this, data.error, data.data) delete web3._callbacks[data._id]; } } |