diff --git a/.changeset/sixty-squids-wink.md b/.changeset/sixty-squids-wink.md new file mode 100644 index 000000000..296fdf87f --- /dev/null +++ b/.changeset/sixty-squids-wink.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/sdk": patch +--- + +io.try jsdocs diff --git a/packages/trigger-sdk/src/io.ts b/packages/trigger-sdk/src/io.ts index ad26d58e2..7fe62f5f8 100644 --- a/packages/trigger-sdk/src/io.ts +++ b/packages/trigger-sdk/src/io.ts @@ -617,6 +617,12 @@ export class IO { return this._taskStorage.run({ taskId: task.id }, executeTask); } + /** `io.try()` allows you to run Tasks and catch any errors that are thrown, it's similar to a normal `try/catch` block but works with [io.runTask()](/sdk/io/runtask). + * A regular `try/catch` block on its own won't work as expected with Tasks. Internally `runTask()` throws some special errors to control flow execution. This is necessary to deal with resumability, serverless timeouts, and retrying Tasks. + * @param tryCallback The callback that will be called when the Task is run. The callback receives the Task and the IO as parameters. + * @param catchCallback The callback that will be called when the Task fails. The callback receives the error + * @returns A Promise that resolves with the returned value or the error + */ async try( tryCallback: () => Promise, catchCallback: (error: unknown) => Promise