小编Red*_*edu的帖子

在通过 setTimeout 或 Promise 阻止代码之前更新 DOM

我知道,当存在 CPU 密集型代码时,任何先前的 DOM 更新都不会发生。例如

function blockFor(dur){
  var now = new Date().getTime();
  while (new Date().getTime() < now + dur);
  result.textContent = "I am done..!";
}

result.textContent = "Please remain..."; // we will never see this
blockFor(2000);
Run Code Online (Sandbox Code Playgroud)
<p id="result"></p>
Run Code Online (Sandbox Code Playgroud)

但是,如果我将 CPU 密集型代码转移到异步时间线,那么setTimeout一切都很好,如以下代码片段所示。

function blockFor(dur){
  var now = new Date().getTime();
  while (new Date().getTime() < now + dur);
  result.textContent = "I am done..!";
}

result.textContent = "Please remain..."; // now you see me
setTimeout(_ => blockFor(2000),15);      // 15ms to be on …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous settimeout promise es6-promise

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

如何使用自定义元数据过滤 Hakyll 帖子

我想根据元数据值过滤我网站的一些帖子。我想创建一个名为status(like titleor date)的特定元数据,它可以采用多个值(草稿、已发布、存档):

---
title: The title
author: Myself
date: 2016-11-29
tags: tag1, tag2
status: draft
---
Run Code Online (Sandbox Code Playgroud)

根据status元数据的价值,该帖子是否应该发布。

我查看了 hackage 文档,但不确定要使用的功能。

你知道如何用 Hakyll 做到这一点吗?

haskell hakyll

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

Haskell中以下函数的最通用类型

g = (. not)

函数最一般的类型g

g :: (Bool -> a) -> Bool -> a
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何考虑构图(.)功能。

为什么不 h :: (a -> Bool) -> a -> Bool呢?

haskell

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

对象解构在 Promise 中解决和拒绝

对象解构不是我最喜欢的东西,我经常尽量避免使用它。但是,在这种特殊情况下,我很好奇而无法忽视正在发生的事情。

现在我们可以这样做;

var o = {},
    x = 1,
    y = 2;
o = {x,y};
console.log(o); // <- {x: 1, y: 2}
Run Code Online (Sandbox Code Playgroud)

一切都很好;

不过,我的情况有点复杂;

var p = function(o){
          o.promise = new Promise((resolve,reject) => o = {resolve,reject});
          console.log(o)  // -< {resolve: ƒ, reject: ƒ}
          return o;
        }({});
console.log(p);           // -< {resolve: ƒ, reject: ƒ}
Run Code Online (Sandbox Code Playgroud)

..的promise财产在p哪里?所以我用经典的方式来做;

var q = function(o){
          o.promise = new Promise((resolve,reject) => ( o.resolve = resolve
                                                      , o.reject  = reject
                                                      ));
          console.log(o)  // <- {promise: …
Run Code Online (Sandbox Code Playgroud)

javascript destructuring promise

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

获取列表中的最后一个元素而不使用模式匹配

我一直得到"错误:输入解析错误'|' "有人可以告诉我为什么吗?我已经重写了它,以确保所有正确的空格都是我的代码:

 mylast :: (Eq a) => [a] -> [a]  
 mylast [] = []  
 mylast (x:xs)  
   | xs == [] : x  
   | otherwise = mylast xs   
Run Code Online (Sandbox Code Playgroud)

haskell

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

Data.Complex包为-8 + 0i((-8):+ 0)的立方根提供了奇怪的结果

我不得不说,数学不是我的强项.我希望得到一个不错的结果如何找到负整数的立方根,使其不返回NaN?通过使用Data.Complex包,但当我喜欢

*Main> ((-8):+0) ** (1/3)
1.0 :+ 1.732050807568877
Run Code Online (Sandbox Code Playgroud)

我希望能得到像(-2.0):+0-2是真实部分,0是虚部的东西.然而,结果显示出一个重要的想象部分.我检查了它所声明(**) RealFloatComplex类型的实例;

x ** y = case (x,y) of
  (_ , (0:+0))  -> 1 :+ 0
  ((0:+0), (exp_re:+_)) -> case compare exp_re 0 of
             GT -> 0 :+ 0
             LT -> inf :+ 0
             EQ -> nan :+ nan
  ((re:+im), (exp_re:+_))
    | (isInfinite re || isInfinite im) -> case compare exp_re 0 of
             GT -> inf :+ 0
             LT -> 0 :+ …
Run Code Online (Sandbox Code Playgroud)

haskell complex-numbers

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

我如何在haskell中解决这个问题?

我得到了这个代码来制作转置矩阵,但它不能100%正常工作.

type Mat a = [[a]]

transpose' :: Eq a => Mat a -> Mat a
transpose' [] = []
transpose' (h:t) = primelem (h:t):transpose' (eliminate' (h:t))

primelem :: Mat a -> [a]
primelem [] = []
primelem [[x]] = [x] 
primelem ((x:xs):t) = x : primelem t

eliminate' :: Eq a => Mat a -> Mat a
eliminate' [] = []
eliminate' (h:t) = (delete (head h) h):eliminate' t

*Main> transpose' [[1,2,3],[0,4,5],[0,06]]

[[1,0,0],[2,4,6],[3,5*** Exception:(..)Non-exhaustive patterns in function primelem
Run Code Online (Sandbox Code Playgroud)

我想弄明白,但我真的不知道哪个案例丢失了.

haskell

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