小编Kon*_*Kon的帖子

将 Swift 结合 Future 映射到另一个 Future

我有一个返回未来的方法:

func getItem(id: String) -> Future<MediaItem, Error> {
  return Future { promise in
    // alamofire async operation
  }
}
Run Code Online (Sandbox Code Playgroud)

我想在另一种方法中使用它并转换MediaItemNSImage,这是一个同步操作。我希望简单地在原始 Future 上做一个mapor flatMap,但它创建了一个我无法擦除的长 Publisher Future<NSImage, Error>

func getImage(id: String) -> Future<NSImage, Error> {
  return getItem(id).map { mediaItem in
    // some sync operation to convert mediaItem to NSImage
    return convertToNSImage(mediaItem)  // this returns NSImage
  }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Cannot convert return expression of type 'Publishers.Map<Future<MediaItem, Error>, NSImage>' to return type 'Future<NSImage, Error>'

我尝试使用flatMap …

swift combine

7
推荐指数
1
解决办法
3295
查看次数

如何将字符串数组转换为字符**

我想在这里手动发送值

void processArgs(int argc, char** argv);
Run Code Online (Sandbox Code Playgroud)

如果我像这样发送

char* cwd[] = {"./comDaemon", "--loggg=pluginFramework:debug"};

parser->processArgs(2, cwd);
Run Code Online (Sandbox Code Playgroud)

编译器显示警告为

警告:ISO C++ 禁止将字符串常量转换为 'char*' [-Wwrite-strings]

 char* cwd[] = {"./comDaemon", "--loggg=pluginFramework:debug"};
Run Code Online (Sandbox Code Playgroud)

c++ c++11

4
推荐指数
1
解决办法
166
查看次数

单击带有vanilla JS的菜单链接时如何隐藏下拉菜单?

我有这个不错的菜单,并在单击菜单内的链接时尝试关闭菜单。但是querySelectorAll我得到了一个错误navLinks.addEventListener不是一个函数。

当我querySelector只使用第一个链接时,它正在响应。

我可以去给每个链接另一个类并创建 5 个相同的函数,但我想要 DRY 代码。这样做的正确方法是什么?

const navSlide = () => {
  const burger = document.querySelector('.burger');
  const nav = document.querySelector('.nav-links');
  const navLinks = document.querySelectorAll('.nav-links li');


  burger.addEventListener('click', () => {  
    // Toggle Nav
    nav.classList.toggle('nav-active');
     // animate navlinks
    navLinks.forEach((link, index) => {
      if(link.style.animation) {
        link.style.animation = ''
      } else {
        link.style.animation = `navLinkFade 0.5s ease forwards ${index / 7 +0.5}s`; 
     }
    });
    // burger animation
    burger.classList.toggle('toggle');

    });
}

navSlide();
Run Code Online (Sandbox Code Playgroud)
* {
  margin: 0px;
  padding: 0px; …
Run Code Online (Sandbox Code Playgroud)

javascript responsive

3
推荐指数
1
解决办法
2042
查看次数

标签 统计

c++ ×1

c++11 ×1

combine ×1

javascript ×1

responsive ×1

swift ×1