小编use*_*388的帖子

如何使用Promises链接和分享先前的结果

我正在使用bluebird库,需要发出一系列HTTP请求,并需要将一些响应数据发送到下一个HTTP请求.我已经构建了一个处理我的请求的函数callhttp().这需要一个URL和POST的正文.

我这样称呼它:

var payload = '{"Username": "joe", "Password": "password"}';
var join = Promise.join;
join(
    callhttp("172.16.28.200", payload),
    callhttp("172.16.28.200", payload),
    callhttp("172.16.28.200", payload),
    function (first, second, third) {
    console.log([first, second, third]);
});
Run Code Online (Sandbox Code Playgroud)

第一个请求获取一个API密钥,需要将其传递给第二个请求,依此类推.如何从第一个请求获取响应数据?

UPDATE

这是callhttp功能:

var Promise = require("bluebird");
var Request = Promise.promisify(require('request'));

function callhttp(host, body) {

    var options = {
        url: 'https://' + host + '/api/authorize',
        method: "POST",
        headers: {
            'content-type': 'application/json'
        },
        body: body,
        strictSSL: false
    };

    return Request(options).spread(function (response) {
        if (response.statusCode == 200) {
           // …
Run Code Online (Sandbox Code Playgroud)

javascript node.js bluebird

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

Ruby CSV - 获取当前行/行号

我正在尝试弄清楚如何从Ruby CSV获取当前行/行号.这是我的代码:

options = {:encoding => 'UTF-8', :skip_blanks => true}
CSV.foreach("data.csv", options, ) do |row, i|
   puts i
end
Run Code Online (Sandbox Code Playgroud)

但这似乎没有按预期工作.有没有办法做到这一点?

ruby csv

50
推荐指数
4
解决办法
3万
查看次数

何时使用远程vs ipcRenderer,ipcMain

我试图理解电子主要和渲染过程之间的通信.文档https://github.com/electron/electron/blob/master/docs/api/remote.md指出"远程模块提供了一种在渲染器进程和渲染器之间进行进程间通信(IPC)的简单方法.主要过程."

但是,关于如何设置它的文档很少.

我可以将IPC示例与我的应用程序一起使用,这看起来很简单.在什么情况下应该使用远程模块?

javascript electron

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

Ruby在调用方法之前检查是否为nil

我在Ruby中有一个字符串,我正在调用strip方法来删除前导和尾随空格.例如

s = "12345 "
s.strip
Run Code Online (Sandbox Code Playgroud)

但是,如果字符串为空,我会收到以下错误.

NoMethodError:nil的未定义方法`strip':NilClass

我正在使用Ruby 1.9,那么在调用strip方法之前,最简单的方法是检查值是否为nil?

更新:

我在数组中的元素上尝试了这个但是遇到了同样的问题:

data[2][1][6].nil? ? data[2][1][6] : data[2][1][6].split(":")[1].strip
Run Code Online (Sandbox Code Playgroud)

ruby null

40
推荐指数
5
解决办法
3万
查看次数

将文件管道化为docker run

作为run命令的一部分,我需要将文件或一些数据传输(注入)到docker中,并将其作为启动的一部分写入容器内的文件.有最佳实践方法吗?

我试过这个.

cat data.txt |  docker run -a stdin -a stdout -i -t ubuntu /bin/bash -c 'cat >/data.txt'
Run Code Online (Sandbox Code Playgroud)

但似乎无法让它发挥作用.

pipe docker

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

获取两个词典列表之间的差异(增量)

我有以下Python数据结构:

data1 = [{'name': u'String 1'}, {'name': u'String 2'}]
data2 = [{'name': u'String 1'}, {'name': u'String 2'}, {'name': u'String 3'}]
Run Code Online (Sandbox Code Playgroud)

我正在寻找获得两个列表之间增量的最佳方法.Python中有什么和JavaScript Underscore.js(_.difference)库一样方便吗?

python dictionary list delta

20
推荐指数
3
解决办法
2万
查看次数

在Ruby中计算哈希值

我在Ruby中有一个哈希数组,如下所示:

domains = [
  { "country" => "Germany"},
  {"country" => "United Kingdom"},
  {"country" => "Hungary"},
  {"country" => "United States"},
  {"country" => "France"},
  {"country" => "Germany"},
  {"country" => "Slovakia"},
  {"country" => "Hungary"},
  {"country" => "United States"},
  {"country" => "Norway"},
  {"country" => "Germany"},
  {"country" => "United Kingdom"},
  {"country" => "Hungary"},
  {"country" => "United States"},
  {"country" => "Norway"}
]
Run Code Online (Sandbox Code Playgroud)

从这个哈希数组我想创建一个新的哈希看起来像这样:

counted = {
  "Germany" => "3",
  "United Kingdom" => "United Kingdom",
  "Hungary" => "3",
  "United States" => "4",
  "France" => "1"
}
Run Code Online (Sandbox Code Playgroud)

使用Ruby …

ruby

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

Fabric - 通过执行将参数传递给任务

我有以下Fabric任务:

def ssh_keygen(user, dir):
   env.user = user
   run("ssh-keygen  %s" % dir)
Run Code Online (Sandbox Code Playgroud)

我想用"执行"来调用它,但需要将任务传递给参数.即用户和目录

execute(ssh_keygen('jbloggs', '/home/jbloggs'), hosts=["server1"])
Run Code Online (Sandbox Code Playgroud)

但是这不起作用:

No hosts found. Please specify (single) host string for connection: Traceback (most recent 
Run Code Online (Sandbox Code Playgroud)

反正有没有实现这个目标?

python fabric

11
推荐指数
1
解决办法
6491
查看次数

在celery任务中获取task_id

这可能是一个愚蠢的问题,但它让我难过来自Ruby背景.

当我尝试打印时,我有一个看起来像这样的对象.

print celery.AsyncResult.task_id
>>><property object at 0x10c383838>
Run Code Online (Sandbox Code Playgroud)

我期待在这里打印task_id属性的实际值.我如何获得实际价值?

更新1

@celery.task
def scan(host):
    print celery.AsyncResult.task_id
    cmd = 'ps -ef'
    cm = shlex.split(cmd)
    scan = subprocess.check_output(cm)
    return scan
Run Code Online (Sandbox Code Playgroud)

最好的祝福.

python object celery

10
推荐指数
3
解决办法
2万
查看次数

Aurelia aurelia-fetch-client和JSON POST

我有以下代码,其工作正常:

import {inject} from 'aurelia-framework';
import {HttpClient, json} from 'aurelia-fetch-client';


@inject(HttpClient)
export class Items {
  heading = 'Items';
  apiKey = "";

  constructor(http) {
    http.configure(config => {
      config
        .useStandardConfiguration()
        .withBaseUrl('https://testme.com/api/')
          .withDefaults({
            headers: {
              'content-type': 'application/json',
              'Accept': 'application/json',
              'X-Requested-With': 'Fetch'
            }
          })
    });

    this.http = http;
  }

attach() {

let auth = {
  Username:"admin",
  Password:"1234"
};

return this.http.fetch('auth', {
      method: 'post',
      body: JSON.stringify(auth),
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
      }
    })
    .then(response => response.json())
    .then(response => {
      this.apiKey = response.APIKey;
      console.log(response);
}); …
Run Code Online (Sandbox Code Playgroud)

json stringify aurelia

10
推荐指数
1
解决办法
8176
查看次数

标签 统计

python ×3

ruby ×3

javascript ×2

aurelia ×1

bluebird ×1

celery ×1

csv ×1

delta ×1

dictionary ×1

docker ×1

electron ×1

fabric ×1

json ×1

list ×1

node.js ×1

null ×1

object ×1

pipe ×1

stringify ×1