APIリファレンス(Node.js)
baasatrakuza-admin > Rakuza > batch
Rakuza.batch() method
バッチ処理のClientを新しく生成して返します。
Signature:
batch(): BatchClient;
Returns:
Example 1
配列で受け取る場合
const batch = RKZ.batch()
// バッチ処理したい操作を各Clientクラスで生成して、Clientに追加
batch.addOp(RKZ.Data.query('shop').createFindOp())
batch.addOp(RKZ.User.createEditOp({
attributes: {
nickname: 'BaaS Kun'
}
}))
try {
// バッチ処理を実行。結果は配列(タプル)で受け取る。(分割代入を使用すると、簡潔に変数に代入できる)
const [dataResult, user] = await batch.exec<[DataResult, User]>(userIdentifier)
// ...
} catch (error) {
// エラーが発生した場合はBatchErrorがスローされる。
if (error instanceof RKZ.BatchError) {
console.error('status_code:', error.status_code)
console.error('message:', error.message)
// 各操作の結果はresultsで参照できる(エラーの場合、RKZErrorのインスタンスが入る)
const [dataResult, user] = error.results as [DataResult | RKZError, User | RKZError]
// ...
}
}
Example 2
オブジェクトで受け取る場合
interface Results {
dataResult: DataResult
user: User
}
interface ResultOrErrors {
dataResult: DataResult | RKZError
user: User | RKZError
}
const batch = RKZ.batch()
// バッチ処理したい操作を各Clientクラスで生成して、Clientに追加
batch.addOp(RKZ.Data.query('shop').createFindOp(), 'dataResult') // 受け取るオブジェクトのプロパティ名を指定する
batch.addOp(RKZ.User.createEditOp({
attributes: {
nickname: 'BaaS Kun'
}
}), 'user')
try {
// バッチ処理を実行。結果はオブジェクトで受け取る。(分割代入を使用すると、簡潔に変数に代入できる)
const { dataResult, user } = await batch.exec<Results>(userIdentifier)
// ...
} catch (error) {
// エラーが発生した場合はBatchErrorがスローされる。
if (error instanceof RKZ.BatchError) {
console.error('status_code:', error.status_code)
console.error('message:', error.message)
// 各操作の結果はresultsで参照できる(エラーの場合、RKZErrorのインスタンスが入る)
const { dataResult, user } = error.results as ResultOrErrors
// ...
}
}