Сообщение от tenshi
|
потоки не параллельны!
|
заметка: и даже не ассинхронны
почерпнул для себя кое-что новое
вот только, исключение нигде не выползает в консоль(Opera, Mozilla)
Разве что, не вижу смысла зачем городить потоки для данной задачи.
Сделал вот такое решение. Кто-то видит подводные камни какие?
var GThread= new function(){
//Version: 3
//Descr: 'creates a wrapper for function that allows you to not be afraid of exceptions in'
//License: 'public domain'
//Implementation:
var GThread=function(proc){
var thread=function()
{
try
{
return proc.apply(this,arguments);
}
catch(e)
{
console.warn(e);
console.trace();
return undefined;
}
}
return thread;
}
//Export: return GThread
//Usage:
var inverse=GThread(function(a){
if(a===0)
throw 'division by zero';
return 1/a;
})
var inverse2=GThread(function(a){
return -a;
})
console.log([inverse(0),inverse2(2),inverse(2)])
// prints [undefined, -2, 0.5] without( :( ) exception 'division by zero' in console log
}