gulp 4异步等待

hmae6n7t  于 2022-12-08  发布在  Gulp
关注(0)|答案(2)|浏览(173)

你能帮助我吗?我正在尝试创建一个大口任务,在构建我的代码后,它会尝试将所有内容保存到sharepoint。我添加了等待我的承诺,让它等待完成,然后再继续,但它没有等待,并尝试保存文件在我的构建even它还没有完成。

gulp.task('build', async function() {
  //BUILD FILES
  await new Promise(resolve => {
    run('npm run build')
      .exec()
      .pipe(gulp.dest('output/run'));
    resolve();
  });
  //AFTER BUILD IT WILL TRY TO SAVE Build folder files to sharepoint
  gulp.src(['./build/**']).pipe(
    spsave(
      {
        siteUrl: siteUrl,
        folder: folderUrl,
        flatten: false
      },
      cred.account
    )
  );
  notify('Process Done 2!');
});
cgyqldqp

cgyqldqp1#

我想明白了。我在烟斗的末端加了一个on,那就是我所谓的决心。

gulp.task('build', async function() {
  await new Promise(resolve => {
    run('npm run build')
      .exec()
      .pipe(gulp.dest('output/run'))
      .on('end', resolve);
  });
  gulp.src(['./build/**']).pipe(
    spsave(
      {
        siteUrl: siteUrl,
        folder: folderUrl,
        flatten: false
      },
      cred.account
    )
  );
  notify('Process Done 2!');
});
nbnkbykc

nbnkbykc2#

将部分代码重写为:

await new Promise(resolve => {
    run('npm run build')
      .exec()
      .pipe(gulp.dest('output/run'));
      .on('end', resolve);
  });

表示您等待来自管道的事件end,然后解决promise。

相关问题