我需要一些帮助承诺和q库



我需要一些关于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 警报,但没有任何反应。

  1. 原因是在这种情况下,他们希望将承诺返回给当前函数的调用方。

  2. 我已经在我自己的程序中完成了此操作,它是这样完成的:

    • 首先请注意,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); });
      
    • 此代码按照您的描述工作;请注意差异。

相关内容

  • 没有找到相关文章

最新更新