INNER CODE UNIT · TypeScript
runFunction
andywer/threads.js · src/worker/index.ts:118
async function runFunction(jobUID: number, fn: WorkerFunction, args: any[]) {
let syncResult: any
try {
syncResult = fn(...args)
} catch (error) {
return postJobErrorMessage(jobUID, error)
}
const resultType = isObservable(syncResult) ? "observable" : "promise"
postJobStartMessage(jobUID, resultType)
if (isObservable(syncResult)) {
const subscription = syncResult.subscribe(
value => postJobResultMessage(jobUID, false, serialize(value)),
error => {
postJobErrorMessage(jobUID, serialize(error) as any)
activeSubscriptions.delete(jobUID)