warning.js:6 Warning: `callback` is deprecated. Please return a promise instead.

文章讨论了在JavaScript中从使用回调函数到Promise的过渡,特别是在表单验证场景下。当收到关于过时回调函数的警告时,建议将验证函数改写为返回Promise,以遵循现代异步编程的最佳实践。示例代码展示了如何将包含回调的验证规则转换为使用Promise的版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误:

 问题:

这个警告通常是由于你在使用一个过时的回调函数(callback)而不是 Promise 对象。在现代 JavaScript 中,Promise 已经成为了处理异步操作的标准方式,而回调函数则逐渐被淘汰。如果你收到了这个警告,你可以考虑将回调函数转换为 Promise 对象。

问题代码:

  // 表单校验
  const accountInformationRules = {
    passAgain: [
      {
        required: true,
        validator: (rule, value, callbackFn) => {
          if (value === '') {
            callbackFn('请再次输入密码');
          } else if (value !== accountInformationData.pass) {
            callbackFn('两次输入密码不一致!');
          }
          callbackFn();
        },
        trigger: ['blur', 'change'],
      },
    ],
  };

解决:将callback换成Promise,一定要加return,不然还会报错

  // 表单校验
  const accountInformationRules = {
    passAgain: [
      {
        required: true,
        validator: (rule, value) => {
          if (value === '') {
            return Promise.reject('请再次输入密码');
          } else if (value !== accountInformationData.pass) {
            return Promise.reject('两次输入密码不一致!');
          }
          return Promise.resolve();
        },
        trigger: ['blur', 'change'],
      },
    ],
  };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值