小编Jam*_*nes的帖子

Promise.all() 未按预期顺序解析 Promise

如果我正确理解 Promise.all(),我希望这段代码需要 5 秒才能将被拒绝的 Promise 的原因输出控制台。

function firstAsyncFunction() {
  return new Promise(function(resolve, reject){
    setTimeout(function(){
      resolve(console.log('First async function has been resolved!'));
    }, 500);
  });    
}

function secondAsyncFunction() {
  return new Promise(function(resolve, reject) {
    setTimeout(function(){
      resolve(console.log('Second async function has been resolved!'));
    }, 2000);
  });
}

function thirdAsyncFunction() {
  return new Promise(function(resolve, reject) {      
    setTimeout(function() {              
      reject('Internal server error'); // rejected for some reason
    }, 5000);    
  });
};

Promise.all([secondAsyncFunction(), firstAsyncFunction(), thirdAsyncFunction()])
    .then(function(values){        
      values.forEach(function(value){
        console.log(value);
      });

    }).catch(function(err){
      console.log(err);
    });
Run Code Online (Sandbox Code Playgroud)

相反,前两个 Promise 得到解决, …

javascript promise

5
推荐指数
1
解决办法
2万
查看次数

Docker 组合服务无法通过服务名称进行通信

tldr:我无法通过服务名称与 docker 组成的服务进行通信,以便向在网络容器中运行的 api 发出请求。

我有一个向 json api 发出请求的单页应用程序。它的 Dockerfile 看起来像这样:

FROM nginx:alpine
COPY dist /usr/share/nginx/html
EXPOSE 80
Run Code Online (Sandbox Code Playgroud)

构建过程完成它的工作并将所有静态资产放在 dist 目录中,然后将其复制到 nginx Web 服务器的 html 目录。

我有一个由 json-server 提供支持的模拟 json api。它的 Dockerfile 看起来像这样:

FROM node:7.10.0-alpine

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY package.json /usr/src/app/
RUN npm install

COPY . /usr/src/app

EXPOSE 3000

CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)

我有一个 docker-compose 文件,如下所示:

version: '2'

services:
  badass-ui:
    image: mydocker-hub/badass-ui
    container_name: badass-ui
    ports:
      - "80:80"

  badderer-api:
    image: mydocker-hub/badderer-api
    container_name: badderer-api
    ports:
      - "3000:3000"
Run Code Online (Sandbox Code Playgroud)

我能够成功构建两个容器,并且能够在两个容器顺利运行的情况下运行“docker-compose …

docker docker-compose

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

在实现 ConsumerSeekAware 接口时,如何使“两种方法具有相同的擦除但都不覆盖另一个”警告静音?

我正在尝试在 Spring 中为 Kafka 消费者实现 ConsumerSeekAware 接口,但是当我尝试覆盖void onPartitionsAssigned(Map<TopicPartition, Long> assignments, ConsumerSeekCallback callback)void onIdleContainer(Map<TopicPartition, Long> assignments, ConsumerSeekCallback callback)在我的应用程序代码中时,我收到“两种方法具有相同的擦除但都不覆盖另一个”警告。

public static class MessageListener implements ConsumerSeekAware{
    ConsumerSeekCallback callback;

    @Override
    public void registerSeekCallback(ConsumerSeekCallback callback){
      this.callback = callback;
    }

    @Override
    public void onPartitionsAssigned(Map<TopicPartition, Long> assignments, ConsumerSeekCallback callback) {

    }

    @Override
    void onIdleContainer(Map<TopicPartition, Long> assignments, ConsumerSeekCallback callback) {

    }
}
Run Code Online (Sandbox Code Playgroud)

我确实知道此警告与需要覆盖的两种方法的 Map 参数中的泛型有关,但我不确定究竟是什么导致了此警告?

在实现 ConsumerSeekAware 接口时,如何使“两种方法具有相同的擦除但都不覆盖另一个”警告静音?

java spring-kafka

2
推荐指数
1
解决办法
293
查看次数