aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Kotewicz <marek.kotewicz@gmail.com>2014-11-07 21:03:46 +0800
committerMarek Kotewicz <marek.kotewicz@gmail.com>2014-11-07 21:03:46 +0800
commit0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449 (patch)
tree638907e31c292bea4210b484cea64d7f91d1605c
parentb0e11826e5f5e73f37304365fbaf504ed53d7886 (diff)
downloadgo-tangerine-0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449.tar.gz
go-tangerine-0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449.tar.zst
go-tangerine-0d6479e1d63598baed0b0c41d4dd8ff9f7ecc449.zip
proper error handling proposal
-rw-r--r--httprpc.js5
-rw-r--r--main.js26
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) {
diff --git a/main.js b/main.js
index ee98d55a3..1c544ef81 100644
--- a/main.js
+++ b/main.js
@@ -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];
}
}