最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

取代承诺

运维笔记admin15浏览0评论

取代承诺

取代承诺

我有一段这样的代码:

export default function imageProcessing() {
  return async function (ctx, next) {
    /* some code is here */
    const request = new Promise(resolve => protocol.get(imageUrl, resolve));
    const result = await request;
    if (result.statusCode >= 400) {
      ctx.status = result.statusCode;
      return next();
    }
    ctx.status = result.statusCode;
    /* some more code in between */
    ctx.type = `image/${format}`;
    ctx.body = result.pipe(transformer);
  };
}

Eslint向我展示了一些错误(因为不允许承诺)。错误:

ESLint:Opera Mobile 12,Opera Mini all,IE Mobile 10,IE 9,Blackberry Browser 7(compat / compat)不支持Promise

我无法修改/避免这种情况,因为它是严格禁止的。我怎样才能取代Promise?有人可以纠正这个吗?

回答如下:

大概,

  1. ESLint配置更改需要您项目的小时。
  2. ESlint消息是正确的,Promises在这些浏览器中不可用,但是'export',async / await和template literal(image/${format})也是如此。你也需要删除它们。
  3. 如果在任何情况下您想要替换代码,请检查Babel-Repl,粘贴代码并检查替代代码。 (根据可读性,这将是最差的代码)
  4. 正如所建议的那样,给予转型。这是克服此兼容性问题的最佳方法,但也会要求您更改ESlint设置。
  5. 直接转换而不理解以上4点, qazxsw poi

同样,这也容易出现容易出错的未来。请关注#1以解决此问题。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论