私の理解では、次のとおりです。約束はどのように作成されますか?次のように約束オブジェクトの
var Promise = {
then: function() { ... },
catch: function() { ... }
};
私はその下にこのコードを持っている場合は機能を有しており、プロミスオブジェクト(fetch.js
)を返します:
var xhr = require('xhr')
module.exports = function (uri) {
return new Promise(function (resolve, reject) {
xhr(uri, function (err, res, body) {
if (err) return reject(err)
if (res.statusCode !== 200) return reject(new Error(body))
resolve(body)
})
})
}
その後、私のindex.js
でI操作を行います。
var promise = fetch("some_url");
Fから返される方法
var fetch = require('./fetch');
var promise = fetch("some_url");
ormed?
new Promise(...)
部分のfetch.js
では、関数をコンストラクタに渡しています。私は前にこのようなことは何も見ていないし、new Promise(...)
の部分のresolve
とreject
のパラメータが、上記のサンプルPromiseオブジェクトのthen
とcatch
のキーにどのように渡されるのだろうと思っています。
[ECMAScript 2015,25.4 Promise Objects、ff。](http://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects) – Andreas
それで、「PromiseCapabilityはプロミスオブジェクトをカプセル化するために使用されるレコード値。そのプロミスオブジェクトを解決または拒否できる機能」。しかし、「解決または拒否可能な機能」は、「新しいプロミス(解決、拒否){...}) 'コンストラクタ? – CapturedTree
この投稿を参照してくださいhttps://www.promisejs.org/implementing/リンクされたstackoverflowの質問http://stackoverflow.com/questions/23772801/basic-javascript-promise-implementation-attempt/23785244#23785244 –