小编use*_*596的帖子

使用Object.assign和Object.create进行继承

我通常沿着以下行实现继承.

function Animal () { this.x = 0; this.y = 0;}

Animal.prototype.locate = function() { 
  console.log(this.x, this.y);
  return this;
};
Animal.prototype.move = function(x, y) {
  this.x = this.x + x;
  this.y = this.y + y; 
  return this;
}


function Duck () {
    Animal.call(this);
}

Duck.prototype = new Animal();
Duck.prototype.constructor = Duck;
Duck.prototype.speak = function () {
    console.log("quack");
    return this;
}

var daffy = new Duck();

daffy.move(6, 7).locate().speak();
Run Code Online (Sandbox Code Playgroud)

我已经阅读了Eric Elliott的这篇文章,如果我理解正确,我可以使用Object.createObject.assign不是?它真的那么简单吗?

var animal = {
   x …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

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

什么是ES6 Promise相当于jQuery Deferred的'always`?

我有以下内容:

getUser("foo").then(handleSuccess, handleError).always(tidyUp);
Run Code Online (Sandbox Code Playgroud)

getUser 返回一个jQuery Deferred对象.

我从这篇文章中了解到我可以将Deferred对象转换为本机Promise Promise.resolve,所以我可以写

Promise.resolve(getUser("foo"))
  .then(handleSuccess)
  .catch(handleError)
Run Code Online (Sandbox Code Playgroud)

虽然Promise API没有提供always方法,所以我想知道应该如何处理它.

是这样的吗?

 Promise.resolve(getUser("foo"))
  .then(handleSuccess)
  .then(tidyUp)
  .catch(handleError)
  .then(tidyUp)
Run Code Online (Sandbox Code Playgroud)

javascript jquery es6-promise

25
推荐指数
1
解决办法
7472
查看次数

是否可以使用JavasScript确定GeoJSON点是否在GeoJSON多边形内?

是否可以使用JavaScript(通过d3,topojson或任何其他方式)确定给定lat,lon中的GeoJSON点是否位于给定的GeoJSON多边形内?

例如,我可以根据这里的教程绘制一张显示英国国家的地图.

然后我有一些点有坐标但没有迹象表明它们在哪个国家.

我想显示每个国家的总点数.

我可以确定哪个国家/地区包含浏览器中的每个点,或者我是否需要使用PostGIS或类似方法在服务器上预处理我的点数据?

javascript point-in-polygon geojson d3.js topojson

17
推荐指数
3
解决办法
8616
查看次数

我可以使用redux-saga的es6生成器作为webockets或eventsource的onmessage监听器吗?

我正在努力让redux-saga与onmessage听众合作.我不知道为什么我的工作不起作用.

我有以下设置.

// sagas.js
import { take, put } from 'redux-saga';
import {transactions} from "./actions";

function* foo (txs) {
    console.log("yielding");  // appears in console
    yield put(transactions(txs));  // action *is not* dispatched
    console.log("yielded"); //appears in console
}

const onMessage = (event) => {
  const txs = JSON.parse(event.data);
  const iter = foo(txs);
  iter.next(); // do I really need to do this? 
};

function* getTransactions() {
  while(yield take('APP_LOADED')) {
    const stream = new EventSource(eventSourceUrl);

    stream.onopen = onOpen;
    stream.onmessage = onMessage;
    stream.onerror …
Run Code Online (Sandbox Code Playgroud)

ecmascript-6 reactjs redux redux-saga

17
推荐指数
1
解决办法
4361
查看次数

如何为调用reduxjs的mapStateToProps的react组件编写单元测试?

我正在尝试为被调用的容器组件编写单元测试,AsyncApp但是我得到以下错误" mapStateToProps必须返回一个对象.而是收到未定义的."

这是我的设置.

Root.js

import configureStore from '../configureStore';
import React, { Component } from 'react';
import { Provider } from 'react-redux';
import AsyncApp from './AsyncApp';

const store = configureStore();

export default class Root extends Component {
  render() {
    return (
      <Provider store={store}>
        <AsyncApp />
      </Provider>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

configureStore.js

import { createStore, applyMiddleware } from 'redux';
import thunkMiddleware from 'redux-thunk';
import createLogger from 'redux-logger';
import rootReducer from './reducers';

const loggerMiddleware = createLogger();

const createStoreWithMiddleware = applyMiddleware(
  thunkMiddleware …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs jestjs redux

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

如何配置jest使用的jsdom实例?

我遇到了这个问题在jest测试用例中需要systemjs时会抛出无效的URL

最后的评论之一表明

"通过在jsdom中设置referrer配置来操纵jsdom实例以获得有效的位置/ baseURI."

我想知道我有办法做到这一点吗?我可以jsdomjest对象以某种方式访问实例吗?

jsdom systemjs jestjs

7
推荐指数
2
解决办法
5803
查看次数

不存在类型变量U的实例,因此Optional <U>符合Response

我有以下内容:

Optional<Resource> updatedResource = update(resourceID, data);

if (updatedResource.isPresent()) {
    return Response.status(Response.Status.OK).entity(updatedResource.get()).build();
}
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想避免isPresentget打电话,所以我试过了

return update(resourceID, data).map(updatedResource -> Response.status(Response.Status.OK).entity(updatedResource).build();
Run Code Online (Sandbox Code Playgroud)

但IntelliJ向我显示以下错误:

No instance(s) of type variable(s) U exist so that Optional<U> conforms to Response

为什么我会收到此错误,是否有办法避免它并避免isPresentget

java optional java-8

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

了解地图与对象MDN文档

有一个问题在这里是类似的,但专门针对"键时,在运行时未知".

Map状态的MDN文档:

当密钥未知时直到运行时,并且当所有键都是相同类型且所有值都是相同类型时,请使用对象上的映射.

当存在对各个元素进行操作的逻辑时使用对象.

我理解有关使用地图的建议"当密钥在运行时才知道".

当所有键都是相同类型且所有值都是相同类型时,我对此行感到困惑.他们试图在那里建议什么?我的意思是,如果我的所有键都不是同一类型,我是否也不会被迫使用Map,因为它支持不同类型的键?另外,为什么值的类型决定了我是使用Map还是Object?

另外,我真的不明白"当存在对各个元素进行操作的逻辑时使用对象".有人能给我一个他们的意思吗?

javascript ecmascript-6

6
推荐指数
1
解决办法
221
查看次数

如何解决递归异步承诺?

我正在玩承诺,我遇到异步递归承诺的问题.

场景是运动员开始跑100米,我需要定期检查他们是否已经完成,一旦完成,打印他们的时间.

编辑澄清:

在现实世界中,运动员在服务器上运行.startRunning涉及对服务器进行ajax调用.checkIsFinished还涉及对服务器进行ajax调用.下面的代码试图模仿它.代码中的时间和距离是硬编码的,以尽量使事情变得简单.道歉不清楚.

结束编辑

我希望能够写下以下内容

startRunning()
  .then(checkIsFinished)
  .then(printTime)
  .catch(handleError)
Run Code Online (Sandbox Code Playgroud)

哪里

var intervalID;
var startRunning = function () {
  var athlete = {
    timeTaken: 0,
    distanceTravelled: 0
  };
  var updateAthlete = function () {
    athlete.distanceTravelled += 25;
    athlete.timeTaken += 2.5;
    console.log("updated athlete", athlete)
  }

  intervalID = setInterval(updateAthlete, 2500);

  return new Promise(function (resolve, reject) {
    setTimeout(resolve.bind(null, athlete), 2000);
  })
};

var checkIsFinished = function (athlete) {
  return new Promise(function (resolve, reject) {
    if (athlete.distanceTravelled >= 100) …
Run Code Online (Sandbox Code Playgroud)

javascript recursion asynchronous promise es6-promise

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

使用值列表查询 DynamoDB GSI

我有一个“团队成员资格”表,其主分区键为“team_id”,主排序键为“电子邮件”,以及一个以“电子邮件”作为分区键的GSI。

给定一个电子邮件列表,我想以最有效的方式找到列表中所有电子邮件的所有成员资格。

我知道对于一封电子邮件我可以执行以下操作:

 Membership membership = new Membership();
 membership.setEmail(email.toLowerCase());

 DynamoDBQueryExpression<Membership> expression = new DynamoDBQueryExpression<Membership>()
                .withHashKeyValues(membership)
                .withIndexName(EMAIL_INDEX)
                .withConsistentRead(false);

 return mapper.query(Membership.class, expression);
Run Code Online (Sandbox Code Playgroud)

它返回给定电子邮件的成员资格列表。

(因此,对于我的电子邮件列表,我可以对列表中的每封电子邮件执行上述操作,但我想知道是否可以一步完成)。

我希望能够做类似的事情:

List<Membership> memberships = allEmails.stream().map(email -> {
            Membership m = new Membership();
            m.setEmail(email.toLowerCase());
            return m;
        }).collect(Collectors.toList());

        DynamoDBQueryExpression<Membership> expression = new DynamoDBQueryExpression<Membership>()
                .withHashKeyValues(memberships) // <--- passing a list
                .withIndexName(EMAIL_INDEX)
                .withConsistentRead(false);
Run Code Online (Sandbox Code Playgroud)

这显然行不通。

有哪些替代方案?

amazon-dynamodb aws-sdk

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

克服无状态组件中缺少引用的问题

我想创建一个无状态搜索组件.单击该按钮时,我需要访问搜索字段的值.以下是可接受的方式吗?这种方法有什么缺点吗?

const Search = ({onBtnClick}) => {
    const onClick = (e) => {
      const query = e.target.previousSibling.value;
      onBtnClick(query);
    };  

    return(
      <div>
        <input type="search" />
        <button onClick={onClick}>Search</button>
      </div>
    )   
  }
Run Code Online (Sandbox Code Playgroud)

reactjs

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

访问模板中组件的对象属性不会显示该对象的属性

我有一个接口定义如下

export interface I18nStrings {
    header: any;
    footer: any;
    sideNav: any;
}
Run Code Online (Sandbox Code Playgroud)

在一个组件中,我定义了一个属性

strings: I18nStrings;
Run Code Online (Sandbox Code Playgroud)

当我输入this.strings.组件时,我的 IDE 会向我显示this.strings.

我希望当我输入{{strings.组件的 html 模板时会发生同样的事情。

这可能吗?如果是,我该怎么做?

visual-studio-code angular

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

如何使用 python sdk 直接将字符串上传到 azure 存储 blob?

使用 python sdk 将 JSON 字符串(在内存中创建,而不是从文件读取)上传到 azure blob 存储的最佳方法是什么?

我从https://pypi.org/project/azure-storage-blob/的文档中了解到,我可以通过执行以下操作将文件上传到 azure blob 存储。

from azure.storage.blob import BlobClient

blob = BlobClient.from_connection_string(conn_str="<connection_string>", container_name="my_container", blob_name="my_blob")

with open("./SampleSource.txt", "rb") as data:
    blob.upload_blob(data)
Run Code Online (Sandbox Code Playgroud)

但我很难找到任何直接上传字符串的示例。

可以直接上传字符串吗?如果是这样,在Python中是如何完成的?

谢谢。

python-3.x azure-blob-storage

0
推荐指数
1
解决办法
7735
查看次数