我需要一些关于node.js promises
语法的帮助。在自述文件中node.js
名为 q https://github.com/kriskowal/q 的模块写了一些我不明白的东西。
为什么他们总是在promise
之前写return
?
return Q.fcall(eventualAdd, 2, 2);
如何将带有回调的异步函数转换为返回promise
的函数?我尝试
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
给定函数给出的回调参数与所有其他节点.js回调相同(error, result)
因此需要将回调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); });
-
此代码按照您的描述工作;请注意差异。
- 首先请注意,