synchronize icon indicating copy to clipboard operation
synchronize copied to clipboard

allow return result and error instead of throw error

Open itswisdomagain opened this issue 6 years ago • 0 comments

Different calls may produce different errors that may need to be handled differently. Users can set a flag to disable throwing exceptions on error.

Examples

var deferReturnError = sync.defer(true);
sync.fiber(function() {
    var fnCallResult = sync.await(asyncFunction(deferReturnError));
    var err = fnCallResult.error; var result = fnCallResult.result;
}
synchronizedFn = sync(asyncFunction);
sync.fiber(function() {
    var fnCallResult = synchronizedFn(arg1, arg2, sync.returnErrorValue);
    var err = fnCallResult.error; var result = fnCallResult.result;
}

Or ES6 style

var deferReturnError = sync.defer(true);
sync.fiber(function() {
    const { error, result } = sync.await(asyncFunction(deferReturnError));
}
synchronizedFn = sync(asyncFunction);
sync.fiber(function() {
    const { error, result }  = synchronizedFn(arg1, arg2, sync.returnErrorValue);
}

itswisdomagain avatar Feb 28 '18 07:02 itswisdomagain