cloudfunctions/SegmentPortraitPic/node_modules/@cloudbase/database/src/transaction.ts
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
import { EJSON } from 'bson'
import { DocumentReference } from './document'
import { Db } from './index'
class DocumentSnapshot {
private _data: any
requestId: string
constructor(data, requestId) {
this._data = data
this.requestId = requestId
}
data() {
return this._data
}
}
const START = 'database.startTransaction'
const COMMIT = 'database.commitTransaction'
const ABORT = 'database.abortTransaction'
const GET_DOC = 'database.getInTransaction'
const UPDATE_DOC = 'database.updateDocInTransaction'
const DELETE_DOC = 'database.deleteDocInTransaction'
interface TransactionAPI {
send(interfaceName: string, param?: any)
}
export class Transaction {
private _id: string
private _db: Db
private _request: TransactionAPI
public constructor(db: Db) {
this._db = db
this._request = new Db.reqClass(this._db.config)
}
async init(): Promise<void> {
const res = await this._request.send(START, {})
if (res.code) {
throw res
}
this._id = res.transactionId
}
async get(documentRef: DocumentReference): Promise<DocumentSnapshot> {
const param = {
collectionName: documentRef._coll,
transactionId: this._id,
_id: documentRef.id
}
const res = await this._request.send(GET_DOC, param)
if (res.code) throw res
return new DocumentSnapshot(EJSON.parse(res.data), res.requestId)
}
async set(documentRef: DocumentReference, data: Object): Promise<SetResult> {
后面还有 130 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
