承诺如何创build?
我对Promise对象的理解如下:
var Promise = { then: function() { ... }, catch: function() { ... } };
如果我有下面这个代码有一个函数,并返回一个Promise对象( 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
我做:
var fetch = require('./fetch'); var promise = fetch("some_url");
如何从var promise = fetch("some_url");
返回promise对象的结构var promise = fetch("some_url");
形成的呢?
在new Promise(...)
部分的fetch.js
中,您将函数传递给构造函数。 我以前没有见过这样的东西,想知道new Promise(...)
部分中的resolve
和reject
参数是如何传递给上面的示例Promise对象中的then
和catch
键的。
我不能解释,但向你展示如何然后函数获得解决的价值或赶上获得错误
采取一个variables保存到该variables的承诺,然后执行,然后像下面的例子一样的function
var a = new Promise(function (resolve, reject) { resolve(1); }) a.then();
当你执行a.then()时,会在promiseStatus中得到两个参数PromiseStatus和PromiseValue,你将会得到它parsing或者拒绝,并且在PromiseValue中你将得到你通过resolve或reject处理程序传递的值
Promise __proto__ : Promise catch:catch() constructor: Promise() then:then() Symbol(Symbol.toStringTag):"Promise" __proto__:Object[[PromiseStatus]]:"resolved"[[PromiseValue]]:1