如何正确使用q.denodeify
How to correctly use q.denodeify
我正在尝试学习如何使用 q 模块和 denodeify 方法。当我 运行 我的代码时,我看到控制台日志 "Inside Add()" 但没有其他记录。我希望代码也记录 "Addition function completed"。有人可以告诉我我的代码哪里出错了吗?
var Q = require('q')
function Add() {
var a, b, c
a = 5
b = 6
c = a + b
console.log("Inside Add()")
}
var display_promise = Q.denodeify(Add)
display_promise().then(function() {
console.log("Addition function completed")
}, function() {s
console.log("Error")
})
denodify
仅对使用典型 Node.js 接受回调函数习惯用法的函数有意义,因为这些函数执行异步操作。函数 Add
两者都不做。
您可以重写它以接受完成后将调用的回调:
function Add(callback) {
var a, b, c
a = 5
b = 6
c = a + b
console.log("Inside Add()")
callback();
}
然而,严格来说这没有多大意义,因为Add
仍然只执行同步代码。
您也可以为其添加一些异步性:
function Add(callback) {
console.log("Inside Add()")
setTimeout(function() {
var a, b, c
a = 5
b = 6
c = a + b
callback();
}, 2000);
}
Q 的文档显示了 q.denodify
的其他示例,例如承诺 fs.readFile
:
var readFile = Q.denodeify(fs.readFile);
readFile("foo.txt", "utf-8").then(...);
从 Node v10 开始,Node 中还内置了一个基于承诺的(实验性)fs
版本:
const { readFile } = require('fs').promises;
readFile(...).then(...)
还有一个 q.denodify
等价物叫做 util.promisify
:
const util = require('util');
const fs = require('fs');
const readFile = util.promisify(fs.readFile);
readFile(...).then(...);
我正在尝试学习如何使用 q 模块和 denodeify 方法。当我 运行 我的代码时,我看到控制台日志 "Inside Add()" 但没有其他记录。我希望代码也记录 "Addition function completed"。有人可以告诉我我的代码哪里出错了吗?
var Q = require('q')
function Add() {
var a, b, c
a = 5
b = 6
c = a + b
console.log("Inside Add()")
}
var display_promise = Q.denodeify(Add)
display_promise().then(function() {
console.log("Addition function completed")
}, function() {s
console.log("Error")
})
denodify
仅对使用典型 Node.js 接受回调函数习惯用法的函数有意义,因为这些函数执行异步操作。函数 Add
两者都不做。
您可以重写它以接受完成后将调用的回调:
function Add(callback) {
var a, b, c
a = 5
b = 6
c = a + b
console.log("Inside Add()")
callback();
}
然而,严格来说这没有多大意义,因为Add
仍然只执行同步代码。
您也可以为其添加一些异步性:
function Add(callback) {
console.log("Inside Add()")
setTimeout(function() {
var a, b, c
a = 5
b = 6
c = a + b
callback();
}, 2000);
}
Q 的文档显示了 q.denodify
的其他示例,例如承诺 fs.readFile
:
var readFile = Q.denodeify(fs.readFile);
readFile("foo.txt", "utf-8").then(...);
从 Node v10 开始,Node 中还内置了一个基于承诺的(实验性)fs
版本:
const { readFile } = require('fs').promises;
readFile(...).then(...)
还有一个 q.denodify
等价物叫做 util.promisify
:
const util = require('util');
const fs = require('fs');
const readFile = util.promisify(fs.readFile);
readFile(...).then(...);