首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用fast-csv,我如何调用异步验证器?

使用fast-csv,我如何调用异步验证器?
EN

Stack Overflow用户
提问于 2021-07-04 16:03:57
回答 1查看 22关注 0票数 0

如何调用返回promise的函数?

代码语言:javascript
复制
const checkDatabase = async (row: Row): Promise<boolean> => {
  return await checkDatabaseService.check()
}

使用像这样的管道

代码语言:javascript
复制
parseStream(steam, {})
.validate(row: Row, processValidationError) : void => {
  processValidationError(null, checkDatabase(), 'ok')
}
.on('data-invalid', (row: Row, rowNumber: number, reason: string) => {
  console.log(`${JSON.stringify(row)} ${rowNumber} ${reason}`)
}
.on('data', row => email(row))
.on('error', error => console.error(error))
.on('end', (rowCount: number) => console.log(`Processed ${rowCount} rows.`));

.validate调用不起作用。

EN

回答 1

Stack Overflow用户

发布于 2021-08-15 21:30:45

下面的模式使用了validate和data-invalid。

代码语言:javascript
复制
parseStream(stream, {})
  .validate((row: Winner, validationErrorCb): void => {
    validateEmail(row, validationErrorCb)
  })
  .on('data', row => this.promises.push(saveRow(row)))
  .on('data', row => this.promises.push(email(row)))
  .on('data-invalid', (row, rowNumber: number, reason: string) => {
       console.log(`Invalid [rowNumber=${rowNumber}] 
       [row=${JSON.stringify(row)}] [reason=${reason}]`)
                const errorRow = processValidationError(row, rowNumber, reason)
                this.promises.push(saveRow(errorRow))
            })

回调方法检查数据,并在失败的情况下返回带有isValid: false的验证回调

代码语言:javascript
复制
 const validateEmail = (row: Winner, validationErrorCb: RowValidateCallback): void => {
    const valid = row.email && !EmailValidator.validate(row.email)
    if (valid) {
      return validationErrorCb(null, true, 'ok')
    }

    row.winPayStatus = WinPayStatus.invalid
    const msg = `Key email ${row.email} is invalid.`
    console.error(msg + JSON.stringify(row))
    return validationErrorCb(null, false, msg)
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68242781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档