回调异步等待[重复]

Posted

技术标签:

【中文标题】回调异步等待[重复]【英文标题】:Callback to Async Await [duplicate] 【发布时间】:2018-09-22 19:58:35 【问题描述】:

我一直在尝试使用这个库:https://github.com/xkeshi/image-compressor

示例:

new ImageCompressor(file, 
    quality: .6,
    success(result) 
      ...
    ,
    error(e) 
      ...
    ,
  );

我想将此函数包装在一个名为 compress 的异步函数中,以便像这样使用它:

const compressed file = await compress(file)

【问题讨论】:

你尝试了什么...? 【参考方案1】:
  function compress(file) 
    return new Promise((resolve, reject) => 
       new ImageCompressor(file, 
         quality: .6,
         success: resolve,
         error: reject
      );
   );
 

【讨论】:

@ele jup,我不认为未来的读者会从中受益。【参考方案2】:

你可以像这样简单地包装函数:

  function compress(parameters) 
      return new Promise((resolve,reject) => 
        new ImageCompressor(file, 
          quality: .6,
          success(result) 
            resolve(result)
          ,
          error(e) 
            reject(e)
          ,
        );
     )

【讨论】:

以上是关于回调异步等待[重复]的主要内容,如果未能解决你的问题,请参考以下文章

功能推送的异步/等待不起作用[重复]

异步 JavaScript - 回调与延迟/承诺 [重复]

JavaScript函数等待回调返回值[重复]

从每个回调调用中获取异步nodejs值[重复]

JavaScript异步/等待:等待后代码不会继续[重复]

在异步函数内部,从回调函数返回值返回 Promise(undefined) [重复]