想要在一个函数中调用另一个function中的值,脑袋有点懵逼,请教一下各位 - CNode技术社区

想要在一个函数中调用另一个function中的值,脑袋有点懵逼,请教一下各位
发布于 10 年前 作者 SHocker-Yu 5773 次浏览 最后一次编辑是 9 年前 来自 问答

var testInsertAndUpdate = function (conn,cb) {

conn.execute(
"SELECT age FROM test WHERE id LIKE 1 ",
function a (err, result)
{
 if (err) {
 return cb(err, conn);
 } else {
 console.log ("----- Select Test --------");
 cute = result.rows;
 console.log ('cute:'+cute);
 return cb(null, conn);
 }
}); 

};

输出 cute:13 我想在另一个函数的if语句中调用cute的值 if (cute !== null) { }

4 回复

搞清楚回调函数、作用域(链)

@captainblue2013 是。。。正在看

方法不止一种,最简单地是把cute挂到全局域,简单的情况可以,但复杂一点的情况不利于异步控制。

你可以用Promise var testInsertAndUpdate = function (conn,cb) { return new Promise(function (resolve, reject) { conn.execute(command, function (err, result) { if (err) { reject(err); } else { resolve(cute); } }) } } 外层代码用的时候,就可以围绕Promise来编程了 testInsertAndUpdate(...) .then(cute) { ... } .fail(function(err) { ... }); 花一点时间熟悉Promise吧,你问的其实是一类问题。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

也可以用RxJS这样的东西,有兴趣也可以去了解。

不好意思,这个编辑器的代码格式化太难用了。

@flamingtop 非常感谢你的回答!是的,昨天刚学习了Promise的写法,针对回调函数中值的调用很有效,你写的很详细,让我对Promise更清晰了,十分感谢!

回到顶部

AltStyle によって変換されたページ (->オリジナル) /