Javascript 我需要一些帮助承诺和q库
我需要一些关于Javascript 我需要一些帮助承诺和q库,javascript,node.js,promise,q,Javascript,Node.js,Promise,Q,我需要一些关于node.js的语法帮助。在node.js的自述文件中,名为q的模块写了一些我不理解的东西 为什么他们总是在承诺之前写return return Q.fcall(eventualAdd, 2, 2); 如何将带有回调的异步函数设置为返回承诺的函数?我试着 function doThis(a,b, callback) { var result = a+ b; setTimeout( callback, 2000, result);} Q.ncall(doThis, 2,3).the
node.js的语法帮助
。在node.js的自述文件中,名为q的模块写了一些我不理解的东西
为什么他们总是在承诺之前写return
return Q.fcall(eventualAdd, 2, 2);
如何将带有回调的异步函数设置为返回承诺的函数
?我试着
function doThis(a,b, callback) { var result = a+ b; setTimeout( callback, 2000, result);}
Q.ncall(doThis, 2,3).then( function(result) { alert(result); });
我认为在2000年之后,它必须以5为警报,但什么也没有发生
原因是,在这种情况下,他们希望将承诺返回给当前函数的调用方
我已经在自己的程序中这样做了,并且是这样做的:
- 首先请注意,
Q.ncall([function],[this],[arguments,…])
的第二个参数是this
- 其次,请注意,
Q.ncall
为给定函数提供的回调参数与所有其他node.js回调(错误,结果)
相同,因此需要将回调null
作为成功时的错误
var Q = require('q');
function doThis(a,b, callback) {
var result = a + b;
setTimeout(function () { callback(null, result) }, 2000);
}
Q.ncall(doThis, null, 2, 3).then(function(result) { console.error(result); });
- 此代码按照您描述的方式工作;注意区别
您是在nodejs还是在浏览器中运行此功能?nodejs中不存在警报