🦄 2024 独立开发者训练营,一起创业!(早鸟优惠在7天后结束)查看介绍 / 立即报名 →

博客

JavaScript:Callback,Promise,async,await

用 JavaScript 语言写的应用里会有一些异步(Asynchronous)的动作,就是执行这些动作的时候不能马上得到结果,这个动作需要点时间。处理应用里的这些异步的行为有几种方法,比如可以使用回调函数(Callback),可以使用 Promise,也可以用 async 函数。

Callback

定义一个函数的时候可以让这个函数支持使用一个函数参数,这个函数参数就是 Callback,也就是回调。使用这个函数的时候可以给它提供一个函数参数,也可以说给它一个 “回调”。

示例:

迄今为止最完整的应用开发学习路线

图: Alex Pasquarella

最近为大家规划了一条可以真正从零开始的,迄今为止也最完整的应用开发学习路线,它有个可爱的名字叫《小白兔的开发之路》。这条路线会为你提供足够的工具,思路,概念与技巧。无论你是什么背景,这条路线都可以让你成为一名开发者。

设计这条路线至今我已经用了 500 多个小时,每个景点都是用心设计过的。途中涉及到了很多技术,从开发工具,到开发语言,应用框架,数据仓库,自动化测试,再到搭建云服务器与部署应用。全部都是精华,绝对不讲废话。

以往的学习路线都是把一些不同的课程拼凑到一起,这么做的最大的问题就是不连贯,你很难找出课程与课程之间的连接点。《小白兔的开发之路》是一条非常连贯的学习路线。比如在介绍数据仓库的时候,搭建好数据仓库服务,练习了基本的数据查询方法之后,马上就会到应用中去实践,做出一个功能。

“准备好” 这种状态根本就不存在

问题会不断出现,Bug 也永远都存在。不要试图解决所有问题,因为那是不可能的事情,问题会不断地涌现出来,不过这是好事,因为只有遇到了具体的问题,你才知道如何解决问题。掌握了基本的技能与工具就可以开始去做很多事情了,任何事情都是这样的。

比如你有个想法,打算自己驾驶一辆汽车去一个地方,你要做的就是先准备好基本的技能与工具。你需要一辆车,要学会驾驶,了解交通规则,这些就是你要自驾所需要的基础技能与工具。这就够了,在路上你可能会不断地遇到新的问题,适应各种路况,跟不同的人打交道,你永远都无法预估到遇到的所有问题,所以也就没有 “准备好” 这一说法,你要做的就是问题出现的时候,要想办法解决它。还好,问题不会同时出现 ,会留给你一定的时间与空间去解决现有的问题。

开发也是一样的,你想开发一个应用,掌握基础以后,就可以开始动手去做,遇到问题再想办法解决。不要害怕问题,也不要追求准备好这种状态,因为这是不存在的。《小白兔的开发之路》就是训练你的基本开发技能,给你足够的技术与工具,让你可以起步去做你想要的应用。

2019 年度开发者调查报告<Stack Overflow>

Stack Overflow 是国外一家非常著名的技术问答平台,我们总是经常能在这个网站上找到问题的答案。2019 年他们调查了 9 万名开发者说出自己最爱的还有平时用的开发语言,框架,工具。 JavaScript 仍然是最受欢迎的开发语言,Node.js 是最受欢迎的框架,VSCode 是开发者最爱的开发工具。

初学者要先学哪个应用框架?

在库,框架,还有系统里面,我推荐大家可以先选择学习一款框架,因为框架比库更强一些,又比系统更简单,更灵活一些。我们决定基于 Node.js 来做一个服务端应用,所以就可以去找一款 Node.js 的服务端应用框架。

不夸张地讲,Node.js 拥有地球上最大的技术生态社区,所以你可以选择的应用框架非常多。你比如 Egg.js,蛋蛋框架,Express.js,快递框架,Nest.js,鸟窝框架,adonis.js,型男框架,等等吧,太多了。

因为 Node.js 应用都是用 JavaScript 语言写出来的,所以这些框架都会带着一个 .js 的后缀,一看到这个后缀你就知道这个是东西是用 JavaScript 语言写出来的。这个只是在 JavaScript 社区里面经常会用到的一种命名的方法,不是必须非常这么做。

哪种开发语言最适合初学者?

推荐初学者先学 JavaScript 这门语言,先完成这些训练即可学习后端应用开发:《小白兔的开发之路:熟悉语言》,订阅宁皓网就可以在线学习了:)

要开发一个应用,你至少呢,先得懂一门开发语言。就是,你得使用一种特定的语言来表达自个儿的一些想法,然后把它包装成一个应用,再把这个应用放到一些机器上边去运行,你比如说,电脑,电视,手机,手表之类的。

Linux:理解文件与目录的权限

想用密钥的方式验证登录,authorized_keys 文件里的内容很重要,也就是它里面应该包含想要通过密钥方式验证登录的设备上的公钥文件的内容。另外这个文件的权限也非常重要。

查看一下用户主目录下的 .ssh 目录里的东西:

[wanghao@xb2-node ~]$ ls -la ~/.ssh

drwx------ 2 wanghao wanghao   61 Jan 11 20:54 .
drwx------ 3 wanghao wanghao  111 Jan 11 20:54 ..
-rw-rw-r-- 1 wanghao wanghao  401 Jan 11 20:54 authorized_keys
-rw------- 1 wanghao wanghao 1823 Jan 11 19:27 id_rsa
-rw-r--r-- 1 wanghao wanghao  398 Jan 11 19:27 id_rsa.pub

观察一下 authorized_keys 这个文件的权限,在列表的最前面那块字符表示的就是文件或者目录的权限。当前这个文件的权限是:

会员故事

今天拜访了一位宁皓网的会员,其实是他来济南串门,我就顺便请了一餐,两瓶青啤,敬上一杯圣诞咖啡。小伙子很优秀,目前还在滑铁卢大学上学,不过也快毕业了。这次有个短暂的假期,家在山东 ,就顺便来济南溜达一下。

他是个挺有想法的青年,自嘲高中时就觉得自己智商拼不过别人,于是就跑到国外去了。在加拿大上了一年高中,考上了滑铁卢大学。他跟我讲了一些学校的事儿,还挺有意思的。滑铁卢这个大学还挺有名气的,计算机专业在加拿大排第一第二的。黑莓的创始人毕业于这个大学,我们熟知的 “世界最好的语言”  PHP 的作者也是这个学校毕业的。

据说隔上两三年就出一位大牛,学校还出过诺贝尔奖,得奖的人当时是副教授,他的领导让他去做个实验,结果实验成了,他就得了个奖。这个故事告诉我们,跟对人相当重要。以太坊的作者在这个学校待过一年,后来退学跑了,因为他觉得学的太简单了。

学校对外国学生收的学费很贵,要比当地人贵十倍。不过如果毕业以后留在加拿大,可以抵掉一些税。在那里上一年学,学费加生活费一年大概 20 万人民币。学校里的亚洲人是多数,中国人,印度人,韩国人,本地人反而是少数。印度学生是最拼的,一学期上七节课,选两个专业,一个是技术专业,一个是商业专业。可能都是奔着当微软、谷歌 CEO 使劲的。

来领圣诞咖啡券吧:)

十几年前我特别痴迷 Web 设计,到处收集页面的模板。那一年,圣诞节快到了,收集的模板里面都加入了圣诞与新年的元素,也不知道为什么,这让我很开心。所以到现在我都对圣诞节有一种非常特别的感觉,可能就是因为它跟以前的一种愉悦的感觉联系在一起了吧。

抬眼一看日历,这又快要圣诞节了,这个月很忙,因为年初的计划,才开始做。还好吧,开始做总比停止要好一些吧。每年圣诞节,我们都会给大家准备点小礼物,实在想不出送大家什么,就请大家喝一杯甜甜的咖啡,这也算是宁皓网的一个传统。

如何领圣诞咖啡券

录一个简单的祝福视频,直接发到我的微信或者邮件都可以。被选中的视频的作者,我会亲手奉上咖啡一杯:)

小视频内容

我是 * (名字 / 昵称 ),在 *(城市),祝宁皓网的同学们,圣诞快乐,新年快乐。(自由发挥一下也行,说说新年愿望什么的)

截止日期

2019.12.20 —— 2019. 12. 23

模块(Module) :导出与导入东西

JavaScript 语言提供了模块这个概念,在一个文件里,如果设置导出了一些东西,我们就可以认为这个文件就是一个模块。

比如在 greeting.ts 里面,定义了一个这样的函数:

const greet = () => {
  console.log('您好 ~');
};

如果打算要在其它的文件里使用 greeting.ts 里面提供的 greet() 函数的功能,就可以在这个文件里导出 greet() 函数。可以这样做:

export const greet = () => {
  console.log('您好 ~');
};

直接在创建 greet() 函数的前面,加上一个 export

现在假设我要在 app.ts 里,使用 greeting.ts 里面的 greet() 函数,可以像这样导入它:

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点