Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异步/等待未按预期运行_Javascript_Vue.js - Fatal编程技术网

Javascript 异步/等待未按预期运行

Javascript 异步/等待未按预期运行,javascript,vue.js,Javascript,Vue.js,我正在学习如何使用Async/Await,据我所知,应该等到Await执行完毕后再继续编写代码 但是,我的代码在等待后完全停止执行,这是我的方法(我使用的是Vue): validateFields()是Vue版本Ant Design的一个函数,用于验证我的表单输入。更多关于它的信息,也许它将有助于通知你们中的任何人 那么,我到底做错了什么呢?Async await的存在是为了简化使用承诺的语法。如果您没有使用承诺,那么async/await不会给您带来任何好处 validateFields似乎正

我正在学习如何使用Async/Await,据我所知,应该等到Await执行完毕后再继续编写代码

但是,我的代码在等待后完全停止执行,这是我的方法(我使用的是Vue):

validateFields()是Vue版本Ant Design的一个函数,用于验证我的表单输入。更多关于它的信息,也许它将有助于通知你们中的任何人


那么,我到底做错了什么呢?

Async await的存在是为了简化使用承诺的语法。如果您没有使用承诺,那么async/await不会给您带来任何好处

validateFields似乎正在使用回调而不是承诺,因此您需要围绕它创建自己的承诺。例如:

async register () {
  try {
    const values = await new Promise((resolve, reject) => {
      this.form.validateFields((err, values) => {
        if (err) {
          reject (err);
        } else {
          resolve(values);
        }
      })
    })
    console.log('got values', values);
  } catch (error) {
    console.log('caught an error', error);
  }
}

Async await的存在是为了简化使用承诺的语法。如果您没有使用承诺,那么async/await不会给您带来任何好处

validateFields似乎正在使用回调而不是承诺,因此您需要围绕它创建自己的承诺。例如:

async register () {
  try {
    const values = await new Promise((resolve, reject) => {
      this.form.validateFields((err, values) => {
        if (err) {
          reject (err);
        } else {
          resolve(values);
        }
      })
    })
    console.log('got values', values);
  } catch (error) {
    console.log('caught an error', error);
  }
}

wait
主要作用于承诺。如果您调用的函数接受回调,它很可能不会返回承诺,因此
wait
无效。您可以包装基于回调的函数以返回承诺。它返回一个对象,那么我该如何解决这个问题呢?
wait
主要用于承诺。如果您调用的函数接受回调,它很可能不会返回承诺,因此
wait
无效。您可以包装基于回调的函数以返回承诺。它返回一个对象,那么我该如何解决这个问题呢?