gpt4 book ai didi

javascript - Q.nfcall 和 Q.fcall 有什么区别?

转载 作者:数据小太阳 更新时间:2023-10-29 04:26:15 25 4
gpt4 key购买 nike

我是 node.js 的新手。我想了解 Q.nfcall。我有以下 Node.js 代码。

function mytest() {
console.log('In mytest');
return 'aaa';
}

Q.nfcall(mytest)
.then(
function(value){
console.log(value);
});

我的预期输出应该是:

In mytest 
aaa

但实际输出是:

In mytest

我在上面的代码中将 Q.nfcall 更改为 Q.fcall 后,输出变成了我预期的结果:

In mytest 
aaa

这是为什么呢? Q.nfcall 和 Q.fcall 有什么区别?谢谢。

最佳答案

来自Q文档:

If you're working with functions that make use of the Node.js callback pattern, where callbacks are in the form of function(err, result), Q provides a few useful utility functions for converting between them. The most straightforward are probably Q.nfcall and Q.nfapply

这意味着 nfcall() 需要调用 cb(error, result) 的 Node 风格的 function(cb)。所以当你写:

Q.nfcall(mytest)
.then(
function(value){
console.log(value);
});

Q 期望 mytest 调用通过 (error, value)Q 的回调,然后调用您的 next 回调与 value。所以你的代码应该看起来像这样(这里是 Plunkr ):

function mytest(cb) {
console.log('In mytest');
cb(null, 'aaa');
}

Q.nfcall(mytest)
.then(
function(value){
console.log('value', value);
});

你可以看看nfcall() test cases更深入地了解它应该如何使用。

关于javascript - Q.nfcall 和 Q.fcall 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25389597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com