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

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更清晰了,十分感谢!

回到顶部