小编Ami*_*mit的帖子

为什么这一系列承诺会立即解决?

有人可以向我解释为什么d立即解决下面代码中的结果promise()?

//promises that are never resolved nor rejected
var a = new Promise(function(r,re){});
var b = new Promise(function(r,re){});
var c = new Promise(function(r,re){});

var d = [a, b, c].reduce(function (previousPromise, promise) {
    return previousPromise.then(promise);
  }, Promise.resolve());
Run Code Online (Sandbox Code Playgroud)

我创建永远未决承诺的阵列,因此所得到的承诺应等待所有后续承诺到结束也永远挂起(这里所提出).我已经使用了一段时间的承诺,但我在这里显然遗漏了一些东西.

Chrome DevTools  - 承诺执行代码

javascript promise ecmascript-6 es6-promise

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

用户界面和用户体验之间有什么区别?

我看到这个词被抛出了很多。希望有人能通俗的解释一下。UI 和 UX 之间有什么区别和关系?

user-interface user-experience

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

具有大数量的模数% - 无穷大错误 - Javascript

是否有诀窍在Javascript中获取大数字的模数.我得到了modulo(7, 16971, 25777) 无穷无尽的7 ^ 16971mod25777 = NaN

function modulo (n, p, m){
var x = Math.pow(n, p);
var y = m;
var z = x%y;
alert(x);
return z;
}
Run Code Online (Sandbox Code Playgroud)

javascript math modulo infinity pow

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

如何防止babel转换发电机功能

我和巴贝尔有一个奇怪的问题.当我在我的一个类中使用一个简单的生成器函数时,babel会创建一个包含调用的函数regeneratorRuntime.

var marked3$0 = [getQueryDummy].map(regeneratorRuntime.mark);
function getQueryDummy(start, end, step) {
    return regeneratorRuntime.wrap(function getQueryDummy$(context$4$0) {
Run Code Online (Sandbox Code Playgroud)

不好的是,它不会创建这个函数,当我忘记手动将编译的生成器替换为原始生成器时(这种情况一直发生),它总是会导致错误

我知道我可以补充一下

require('babel/polyfill')
Run Code Online (Sandbox Code Playgroud)

到我的档案.polyfill具有该regeneratorRuntime功能.这就是它变得非常奇怪的地方.即使我将require(...)放在文件的最顶部,babel会regeneratorRuntime在包含polyfill 之前调用,这又会导致相同的错误.

为了完整起见,这是发电机

function *getQueryDummy(start, end, step) {
  while (start < end) {
    yield [start, '@dummy'];
      start += step;
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用babel版本5.8.23.

有没有办法告诉babel根本不接触generators?node本地支持它们,我不需要编译它...

node.js babeljs

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

WHERE子句中的SQL Server浮点

我正在尝试查询数据库,我需要获得一个客户列表,其权重等于60.5.问题是60.5是一个真实的我以前从未在where子句中使用real查询数据库.

我试过这个:

SELECT Name FROM Customers WHERE Weight=60.5
SELECT Name FROM Customers WHERE Weight=cast(60.5 as real)
SELECT Name FROM Customers WHERE Weight=cast(60.5 as decimal)
SELECT Name FROM Customers WHERE Weight=convert(real,'60.5')
SELECT Name FROM Customers WHERE Weight=convert(decimal,'60.5')
Run Code Online (Sandbox Code Playgroud)

这些查询返回0值,但在Customers表中,它们是10行,权重= 60.5

sql sql-server floating-point

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

如何按层次对行进行排序

我的表具有层次结构,父子关系,并希望按该层次结构对其进行排序。表是:

id|parent|type
--------------
1 |0     |1
2 |0     |1
3 |0     |1
4 |0     |2
5 |0     |2
6 |2     |2
7 |3     |2
Run Code Online (Sandbox Code Playgroud)

结果,我想要这个:

id|parent|type
--------------
1 |0     |1
2 |0     |1
6 |2     |2
3 |0     |1
7 |3     |2
4 |0     |2
5 |0     |2
Run Code Online (Sandbox Code Playgroud)

所以我想得到像树视图那样的东西,其中类型1首先排序,类型2最后排序。

现在,我尝试使用递归,但顺序错误:

with cte as
(
  select id, parent, type from tbl where id=1
  union all
  select id, parent, type,
  ROW_NUMBER()over(
   order by
         (case when t.type = 1 then 1
            when t.type …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

ES6课程中的constr.apply(this,args)

我已经使用以下函数创建了一段时间未知类的实例:

Kernel.prototype._construct = function (constr, args) {
  function F() {
    constr.apply(this, args); // EXCEPTION!
  }
  F.prototype = constr.prototype;
  return new F();
};
Run Code Online (Sandbox Code Playgroud)

如果我使用原型,一切正常:

function Person(name, surname) {
  this.name = name;
  this.surname = surname;
}

var person = Kernel._construct(Person, ["name", "surname"]); // WORKS!
Run Code Online (Sandbox Code Playgroud)

但是,有些人在节点v4 +中使用我的库使用ES6本机类:

class Person {
  constructor(name, surname) {
    this.name = name;
    this.surname = surname;
  }
}

var person = Kernel._construct(Person, ["name", surname]); // EXCEPTION!
Run Code Online (Sandbox Code Playgroud)

他们收到一个错误:

TypeError: Class constructors cannot be invoked without 'new'
Run Code Online (Sandbox Code Playgroud)

我需要能够使用未知数量的参数调用构造函数.关于如何解决这个问题的任何想法?

javascript oop constructor node.js ecmascript-6

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

如何使用包含斜杠字符的参数?

我在person集合中的MongoDB密钥是这样的:

TWITTER/12345678
GOOGLE/34567890
TWITTER/45678901
...
Run Code Online (Sandbox Code Playgroud)

我用getPersonByKey这种方式定义路线:

router.route('/getPersonByKey/:providerKey/:personKey').
  get(function(req, res) { // get person by key
    var key = req.params.providerKey + '/' + req.params.personKey;
    // ...
  }
);
Run Code Online (Sandbox Code Playgroud)

当然我更愿意写这样的东西:

router.route('/getPersonByKey/:key').
  get(function(req, res) { // get person by key
    var key = req.params.key;
    // ...
  }
);
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为GET http://localhost/getPersonByKey/TWITTER/12345678当然会产生404,因为带斜杠的参数被解释为两个不同的参数......任何想法?

javascript regex routes node.js express

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

组合总和内循环和外循环的动态编程可互换吗?

对于组合总和的动态编程解决方案,我有些困惑,您会得到一个数字列表和一个目标总计,并且您希望计算可以用多少种方法来求和该目标总和。数字可以重复使用多次。我对内循环和外循环是否可互换感到困惑。有人可以解释以下两者之间的区别吗?在哪种情况下,我们将使用其中一个而不使用另一个,或者它们是相同的。

int [] counts = new int[total];
counts[0] = 1;

// (1) 
for(int i = 0; i <= total; i++) {
   for(int j = 0; j < nums.length; j++) {
       if(i >= nums[j])
          counts[i] += counts[i - nums[j]];
   }
}

// (2)
for(int j = 0; j < nums.length; j++)
   for(int i = nums[j]; i <= total; i++) {
       counts[i] += counts[i - nums[j]];
   }
}
Run Code Online (Sandbox Code Playgroud)

java algorithm dynamic-programming

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

如何在css正则表达式中获取html数据属性值

这是我的 Html。我给出的数据视图为 190。

<ul>
   <li class="lecture" data-views="190"></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这是我的 CSS 代码。我正在尝试动态获取数据属性值。我怎样才能得到 data-views 的这个值作为 width 。

$aaa:attr(data-views);
ul li:before{
  content:$aaa;
}
[data-views='$aaa']{
font-size:40px;
}
ul li{
  width : $aaa;
}
Run Code Online (Sandbox Code Playgroud)

html css sass

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