如果我正确理解 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 得到解决, …
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 …
我正在尝试在 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 接口时,如何使“两种方法具有相同的擦除但都不覆盖另一个”警告静音?