如何从下面的示例中获取文本的值?
Q.js有一个使用Deferred的例子:
var deferred = Q.defer();
FS.readFile("foo.txt", "utf-8", function (error, text) {
if (error) {
deferred.reject(new Error(error));
} else {
deferred.resolve(text);
}
});
return deferred.promise;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,使用节点异步功能.我想要做的是从返回的deferred.promise中获取文本的值.当我在console.log(deferred.promise)时,我得到了这个:
{ promiseSend: [Function], valueOf: [Function] }
Run Code Online (Sandbox Code Playgroud)
我做错了什么(因为我只是从这里复制/粘贴示例:https://github.com/kriskowal/q#using-deferreds)或者我还需要做些什么来从文件中实际获取该文本?
我知道node.js上面有一个同步版本的调用 - 我的目标是了解deferred如何与这个库一起工作.
vau*_*han 11
请参阅https://github.com/kriskowal/q#adapting-node
可以像nodejs一样重写:
var read = Q.nfcall(FS.readFile, FS, "foo.txt", "utf-8");
read().then( function (text) { console.log(text) } );
Run Code Online (Sandbox Code Playgroud)
Jon*_*ski 10
您可以通过Promise .then()
方法获取值:
function read() {
// your snippet here...
}
read().then(function (text) {
console.log(text);
});
Run Code Online (Sandbox Code Playgroud)
此外,错误处理程序可以被传递无论是作为一个第二参数.then()
或与该.fail()
方法:
read().fail(function (err) {
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27921 次 |
最近记录: |