栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

返回函数Javascript

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

返回函数Javascript

我在不同的帖子上看到了回调函数,但是它不适用于我想做的事情。

是的,您只需要更改对代码的思考方式即可。与其编写

email_already_exists_in_mysql
,不如编写一个名为的函数
if_email_already_exists_in_mysql

function if_email_already_exists_in_mysql (email,callback) {    connection.query(        'SELECt COUNT(*) AS nb FROM user WHERe emailUser = ' +        connection.escape(email),        function(err, rows, fields) { if(rows[0].nb != 0) {     callback(); }        }    )}

然后,而不是这样写:

//If the email hasn't a good formatif(email_not_good_format()) {    //I do something}else if(email_already_exists_in_mysql(email)) {    //I do something}

您可以这样写:

//If the email hasn't a good formatif(email_not_good_format()) {    //I do something}else {if_email_already_exists_in_mysql(email),function(){    //I do something})}

现在,您可能会问自己,在那之后还有其他事情吗?好吧,您需要修改

if_email_already_exists_in_mysql
函数使其行为类似于和
if...else
而不是just和
if

function if_email_already_exists_in_mysql (email,callback,else_callback) {    connection.query(        'SELECt COUNT(*) AS nb FROM user WHERe emailUser = ' +        connection.escape(email),        function(err, rows, fields) { if(rows[0].nb != 0) {     callback(); } else if(else_callback) {     else_callback(); }        }    )}

这样您就可以这样称呼它:

//If the email hasn't a good formatif(email_not_good_format()) {    //I do something}else {    if_email_already_exists_in_mysql(email),function(){        //I do something    },    // else    function(){        //I do something else    })}

您可以编写异步代码来执行常规代码只能执行的几乎所有工作,而不是返回在回调中传递的值。记得:

返回 同步代码== 以异步代码传递 回调

因此,代码结构必须不同,但是正如我上面所演示的,要实现的逻辑可以完全相同。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485067.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号