我读过这篇文章:
Callbacks are imperative, promises are functional: Node’s biggest missed opportunity
有一个代码:
var p1 = new Promise();
p1.then(console.log);
p1.resolve(42);
var p2 = new Promise();
p2.resolve(2013);
p2.then(console.log);
// prints:
// 42
// 2013
这对我来说很有意义。非常声明性的代码。
但是,一旦我真正使用promise
在 Node.js 中
正在做
npm bluebird
这是实际有效的代码:
var Promise = require('bluebird');
var r1;
var p1 = new Promise(function(resolve){
r1 = resolve;
});
p1.then(console.log);
r1(42);
var r2;
var p2 = new Promise(function(resolve){
r2 = resolve;
});
r2(2013);
p2.then(console.log);
对我来说,前面的代码看起来更合理。 这是怎么回事?
有什么想法吗?谢谢。
最佳答案
实际上,创建待处理的 Promise 或延迟根本没有意义。只需使用 Promise.resolve
:
var p1 = Promise.resolve(42);
p1.then(console.log);
var p2 = Promise.resolve(2013);
p2.then(console.log);
关于javascript - JavaScript 中 `promise` 的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27789535/