1. ホーム
  2. ビュー

await は予約語 問題解決

2022-02-25 01:45:06

1 asyncとawaitの概念については、こちらの記事で提案しています。 https://www.cnblogs.com/SamWeb/p/8417940.html

私が遭遇したのは vue 要素のコンポーネント内部で、コンポーネントフォームが正常にチェックインした後 (createProjectConfirm 関数内)、新しいレコードが追加され、リストが更新されるようにもともと書かれていました (handleResult) 。

handleResult (res) {
        if (res.state ! == 0) {
          this.$message({
            message: res.message,
            type: 'warning'
          });
        } else {
          this.$message({
            message: res.message,
            type: 'success'
          });
          this.$refs['projectForm'].resetFields();
          this.dialogFormVisible = false;
          this.getProjectList(1);
        }
      },
      createProjectConfirm () {
        this.$refs['projectForm'].validate((valid) => {
          if (valid) {
            let param = {
              projectName: this.projectForm.projectName,
              projectDescription: this.projectForm.projectDescription
            };
            this.$post('/api/project', param).then(res => {
              this.handleResult(res);
            });

2 その後、asyncとawaitを試したところ、これがうまくいきました。

      createProjectTest() {
       let param = {
              projectName: this.projectForm.projectName,
              projectDescription: this.projectForm.projectDescription
            };
       return this.$post('/api/project', param).then(res => {
          return res;
        });
      },
       createProjectConfirm () {
        this.$refs['projectForm'].validate( async (valid) => {
            if(valid) {
                let res = await this.createProjectTest();
                console.log(res);

                if(res.state ! == 0) {
                  this.$message({
                          message: res.message,
                          type: 'warning'
                        });
                } else{
                  this.$message({
                          message: res.message,
                          type: 'success'
                        });
                        this.$refs['projectForm'].resetFields();
                        this.dialogFormVisible = false;
                        this.getProjectList(1);
                }
            }

        })

前のエラーが報告されたawaitは、予約語であるため、間違ったasyncはcreateProjectTestに、ここでasyncとawaitはペアで、そう匿名関数の場所に配置する必要があります、プラスasync関数がブロックawaitます、awaitはスレッドのうち、同期のように飛び出す、それは何かを学ぶための一つのことは、それは何かを使用するには別のことだ。セルフモチベーション