try {
const result = await browserable.waitForRun(taskId, runId, {
// Optional: customize polling interval (default: 1000ms)
pollInterval: 2000,
// Optional: customize timeout (default: 5 minutes)
timeout: 300000,
// Optional: handle status updates
onStatusChange: (status) => {
console.log(`Task status: ${status.status}`);
// Handle live status updates
if (status.liveStatus) {
console.log('Live status:', status.liveStatus);
}
// Handle input wait states
if (status.toolCall) {
console.log('Waiting for input:', status.toolCall);
}
}
});
if (result.success && result.data) {
console.log('Task completed!');
console.log('Output:', result.data.output);
console.log('Data table:', result.data.dataTable);
}
} catch (error) {
if (error.message.includes('Timeout')) {
console.error('Task timed out');
} else {
console.error('Error while waiting for task:', error);
}
}