快速入门是否可以更快速一些呢?
Closed this issue · 8 comments
文档里的快速入门那个排序动画,只写了怎么改写函数体,但是执行需要用start
方法却没有提。我花了不少时间才从代码里发现,原来要start
一下,这所有的一切才会动起来。但这关键的一点在文档里却丝毫没有提及。
另外我不是很明白为什么示例代码要使用编译后的compare
和swap
:
// 异步比较元素
var r = $await(compareAsync(array[j], array[j + 1]));
// 异步交换元素
if (r > 0) $await(swapAsync(array, j, j + 1));
而把sleep
放在for
循环中,似乎也可以达到同样的效果,却只需要编译一个排序函数:
$await(Wind.Async.sleep(compareCost));
var r = compare(array[j], array[j + 1]);
$await(Wind.Async.sleep(updateCost));
if (r > 0) swap(array, j, j + 1);
我知道这个 demo 里有好几个算法,编译compare
和swap
可以复用。但对于快速入门来说,这个由 demo 的代码复用产生的需求,却会让的入门文档本身显得不够快。每一个试图使用Wind.js的人,在看这份文档时,都不得不首先面对eval
套$await
,里面又是一层eval
套$await
这样看起来很“吓人”的代码。原本使用eval
的心理代价就很高了,这样无疑是雪上加霜……
我想象中的够快的文档应该是:告诉我只需要编译一次,然后sleep
,我想要的动画就完成了,magically!
上面就是我今天尝试使用Wind.js时,遇到的问题和阅读文档时的感觉,虽然我不怕用eval
……
今天给老早前写的一个坐标平面点排序算法的demo做了动画。相比于传统的代码被拆得稀烂的setTimeout法,用Wind.js实现的结果非常简单,只动了三行代码,完全不触及原有的结构。
代码写得烂,语文也不好,老赵随便拍……
真是谦虚
@myst729 原因有两点,一是演示异步函数可以组合,二是想让bubbleSort
方法可以与之前结构保持一致。
你的示例似乎很有意思,能不能写一篇文章,参加征文呀?我希望可以多些这样的案例,多谢!
可以啊,算法早就写过blog,加动画应该写起来费不了多少事……
@myst729 多谢了,稍微写的详细点哟,例如算法看上去很普通,之前多么复杂,现在多么简单之类的,呵呵。
@JeffreyZhao 其实省了多少事,看代码就一目了然了啊……setTimeout那叫一个乱……
@myst729 所以你得写出来啊,否则就没人知道……
@myst729 好,会加上的……