如何向diff.structedPatch方法添加回调?

问题描述 投票:0回答:1

使用库https://github.com/kpdecker/jsdiff 并打电话:

function structuredPatch(oldFileName: string, newFileName: string, oldStr: string, newStr: string, 
                         oldHeader: string, newHeader: string, options?: {context: number}): IUniDiff;

如何将 callback 传递给它?

javascript json diff
1个回答
0
投票

在版本 6.0.0 之前,

callback
选项仅受
diffFoo
系列函数支持,如
diffChars
diffWords
等,而不受
structuredPatch
等补丁创建函数支持。因此,当您在 2020 年提出这个问题时,您想做的事情根本没有得到支持。

但是,我在 v6.0.0 中添加了对异步使用补丁创建函数的支持,因此,如果您升级到最新版本的 jsdiff,您现在可以在异步模式下调用

structuredPatch
,如下所示:

structuredPatch(
  'oldfile', 'newfile',
  'foo\nbar\nbaz\n', 'foo\nbarcelona\nbaz\n',
  'header1', 'header2',
  {
    callback: (res) => {
      console.log(res);
      // Will log:
      // {
      //   oldFileName: 'oldfile', newFileName: 'newfile',
      //   oldHeader: 'header1', newHeader: 'header2',
      //   hunks: [{
      //     oldStart: 1, oldLines: 3, newStart: 1, newLines: 3,
      //     lines: [' foo', '-bar', '+barcelona', ' baz']
      //   }]
      // }
    }
);
© www.soinside.com 2019 - 2024. All rights reserved.